176 lines
5.7 KiB
TypeScript
176 lines
5.7 KiB
TypeScript
// export const COLOR_LIST = ['#FF6633', '#FFB399', '#FF33FF', '#FFFF99', '#00B3E6'];
|
|
export const WATER_COLORS = {
|
|
// 基础 12色
|
|
basic12: [
|
|
{ name: '红色', hex: '#FF0000' },
|
|
{ name: '橙色', hex: '#FF7F00' },
|
|
{ name: '黄色', hex: '#FFFF00' },
|
|
{ name: '黄绿色', hex: '#ADFF2F' },
|
|
{ name: '绿色', hex: '#00FF00' },
|
|
{ name: '青色', hex: '#00FFFF' },
|
|
{ name: '蓝色', hex: '#0000FF' },
|
|
{ name: '紫色', hex: '#8A2BE2' },
|
|
{ name: '粉红色', hex: '#FF69B4' },
|
|
{ name: '棕色', hex: '#A52A2A' },
|
|
{ name: '橙红色', hex: '#FF4500' },
|
|
{ name: '黑色', hex: '#000000' },
|
|
],
|
|
|
|
// 扩展 24色
|
|
extended24: [
|
|
{ name: '红色', hex: '#FF0000' },
|
|
{ name: '橙红色', hex: '#FF4500' },
|
|
{ name: '橙色', hex: '#FF7F00' },
|
|
{ name: '橙黄色', hex: '#FFA500' },
|
|
{ name: '黄色', hex: '#FFFF00' },
|
|
{ name: '黄绿色', hex: '#ADFF2F' },
|
|
{ name: '草绿色', hex: '#7CFC00' },
|
|
{ name: '绿色', hex: '#00FF00' },
|
|
{ name: '深绿色', hex: '#006400' },
|
|
{ name: '青色', hex: '#00FFFF' },
|
|
{ name: '天蓝色', hex: '#87CEEB' },
|
|
{ name: '蓝色', hex: '#0000FF' },
|
|
{ name: '深蓝色', hex: '#00008B' },
|
|
{ name: '蓝紫色', hex: '#8A2BE2' },
|
|
{ name: '紫色', hex: '#800080' },
|
|
{ name: '紫红色', hex: '#FF00FF' },
|
|
{ name: '粉红色', hex: '#FF69B4' },
|
|
{ name: '深粉色', hex: '#FF1493' },
|
|
{ name: '棕色', hex: '#A52A2A' },
|
|
{ name: '深棕色', hex: '#8B4513' },
|
|
{ name: '灰色', hex: '#808080' },
|
|
{ name: '银灰色', hex: '#C0C0C0' },
|
|
{ name: '米色', hex: '#F5F5DC' },
|
|
{ name: '黑色', hex: '#000000' },
|
|
],
|
|
|
|
// 特殊 36色
|
|
special36: [
|
|
{ name: '红色', hex: '#FF0000' },
|
|
{ name: '绯红', hex: '#DC143C' },
|
|
{ name: '橙红色', hex: '#FF4500' },
|
|
{ name: '橙色', hex: '#FF7F00' },
|
|
{ name: '橙黄色', hex: '#FFA500' },
|
|
{ name: '金色', hex: '#FFD700' },
|
|
{ name: '黄色', hex: '#FFFF00' },
|
|
{ name: '柠檬黄', hex: '#FFFACD' },
|
|
{ name: '黄绿色', hex: '#ADFF2F' },
|
|
{ name: '草绿色', hex: '#7CFC00' },
|
|
{ name: '绿色', hex: '#00FF00' },
|
|
{ name: '深绿色', hex: '#006400' },
|
|
{ name: '橄榄绿', hex: '#808000' },
|
|
{ name: '青色', hex: '#00FFFF' },
|
|
{ name: '蓝绿色', hex: '#20B2AA' },
|
|
{ name: '天蓝色', hex: '#87CEEB' },
|
|
{ name: '蓝色', hex: '#0000FF' },
|
|
{ name: '深蓝色', hex: '#00008B' },
|
|
{ name: '海军蓝', hex: '#000080' },
|
|
{ name: '蓝紫色', hex: '#8A2BE2' },
|
|
{ name: '靛蓝色', hex: '#4B0082' },
|
|
{ name: '紫色', hex: '#800080' },
|
|
{ name: '紫罗兰', hex: '#9400D3' },
|
|
{ name: '紫红色', hex: '#FF00FF' },
|
|
{ name: '粉红色', hex: '#FF69B4' },
|
|
{ name: '深粉色', hex: '#FF1493' },
|
|
{ name: '玫瑰红', hex: '#FF007F' },
|
|
{ name: '棕色', hex: '#A52A2A' },
|
|
{ name: '深棕色', hex: '#8B4513' },
|
|
{ name: '咖啡色', hex: '#6F4E37' },
|
|
{ name: '灰色', hex: '#808080' },
|
|
{ name: '银灰色', hex: '#C0C0C0' },
|
|
{ name: '白色', hex: '#FFFFFF' },
|
|
{ name: '米色', hex: '#F5F5DC' },
|
|
{ name: '象牙白', hex: '#FFFFF0' },
|
|
{ name: '黑色', hex: '#000000' },
|
|
],
|
|
};
|
|
|
|
/**
|
|
* 数字颜色映射(柔和12色)
|
|
* 用于数学页面的数字显示和涂色
|
|
*/
|
|
export const NUMBER_COLORS: Record<number, string> = {
|
|
1: '#ED6D50', // 柔和红色
|
|
2: '#F9A857', // 柔和橙色
|
|
3: '#FFE176', // 柔和黄色
|
|
4: '#B2D94B', // 柔和黄绿色
|
|
5: '#53D1B6', // 柔和绿色
|
|
6: '#6CD2EA', // 柔和青色
|
|
7: '#79A7ED', // 柔和蓝色
|
|
8: '#9C98DE', // 柔和紫色
|
|
9: '#F2A4C0', // 柔和粉色
|
|
10: '#FC9B6C', // 柔和橙红色
|
|
11: '#BC8F71', // 柔和棕色
|
|
12: '#666666', // 柔和黑灰
|
|
13: '#FF6F61', // 童趣珊瑚橘
|
|
14: '#FFCB05', // 童趣明亮黄
|
|
15: '#5AE2B1', // 童趣薄荷绿
|
|
16: '#FF85A1', // 童趣樱花粉
|
|
17: '#8CBAFF', // 童趣天真蓝
|
|
18: '#FFD6E0', // 童趣泡泡粉
|
|
19: '#57DAFF', // 童趣冰雪蓝
|
|
20: '#FFE066', // 童趣香蕉黄
|
|
};
|
|
|
|
/**
|
|
* 获取所有数字颜色数组
|
|
*/
|
|
export function getNumberColors(): string[] {
|
|
return Object.values(NUMBER_COLORS);
|
|
}
|
|
|
|
/**
|
|
* 随机获取一个数字颜色
|
|
*/
|
|
export function getRandomNumberColor(): string {
|
|
const colors = getNumberColors();
|
|
return colors[Math.floor(Math.random() * colors.length)];
|
|
}
|
|
|
|
/**
|
|
* 从 NUMBER_COLORS 中随机获取指定数量的不重复颜色
|
|
* @param count 需要获取的颜色数量
|
|
* @returns 不重复的颜色数组
|
|
*/
|
|
export function getRandomUniqueNumberColors(count: number): string[] {
|
|
const allColors = getNumberColors();
|
|
if (count >= allColors.length) {
|
|
// 如果需要的数量大于等于总数,返回打乱后的所有颜色
|
|
return [...allColors].sort(() => Math.random() - 0.5);
|
|
}
|
|
|
|
// 使用 Set 确保不重复
|
|
const selectedColors = new Set<string>();
|
|
while (selectedColors.size < count) {
|
|
const randomIndex = Math.floor(Math.random() * allColors.length);
|
|
selectedColors.add(allColors[randomIndex]);
|
|
}
|
|
|
|
return Array.from(selectedColors);
|
|
}
|
|
|
|
export const PAPER_SIZE = {
|
|
A4: {
|
|
// width: 2480,
|
|
// height: 3508,
|
|
width: 595,
|
|
height: 842,
|
|
},
|
|
A3: {
|
|
width: 3508,
|
|
height: 4960,
|
|
},
|
|
A2: {
|
|
width: 4960,
|
|
height: 7016,
|
|
},
|
|
A1: {
|
|
width: 7016,
|
|
height: 10032,
|
|
},
|
|
A0: {
|
|
width: 10032,
|
|
height: 14176,
|
|
},
|
|
};
|