// 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 = { 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(); while (selectedColors.size < count) { const randomIndex = Math.floor(Math.random() * allColors.length); selectedColors.add(allColors[randomIndex]); } return Array.from(selectedColors); } /** A4 打印导出尺寸:150 DPI,兼顾清晰度与文件体积/打印速度 */ export const A4_EXPORT_SIZE_150DPI = { width: 1240, height: 1754 }; 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, }, };