图形图像软件中对两个色彩进行线性渐变的算法是什么?是以AB两点色彩(假设为rgb制)的三个参数以及
发布网友
发布时间:2022-04-28 11:30
我来回答
共1个回答
热心网友
时间:2023-10-05 12:58
会java吗?这一段我用于生成渐变色的代码,算法挺简单的,手机能看得清楚吗?
private void addTwoColor(Color beginColor, Color endColor, int step) {
//用浮点数组存储RGB 3色,java中颜色值是0-255
float[] begin = beginColor.getRGBColorComponents(null);//开始的颜色
float[] end = endColor.getRGBColorComponents(null);//介绍的颜色
// 这段代码是生成两个颜色之间step数量个渐变色
// 没明白你的问题的后半部分,猜测也是要求生成两个颜色之间
// 的N个渐变色,即使我理解错,应该问题不大,反正算法简单,
// 你一看也就明白
for (int j = 0; j < step; j++) {
float f[] = new float[3];
for (int i = 0; i < 3; i++) {
//这个就是算法,RGB三色都按同样的算法
f[i] = begin[i] - (begin[i] - end[i]) * j / step;
}
Color color = new Color(f[0], f[1], f[2]);
this.colorList.add(color);
}
}
追问和我理解一样,现在没有编辑环境所以问一下进行确认~谢谢咯!
热心网友
时间:2023-10-05 12:58
会java吗?这一段我用于生成渐变色的代码,算法挺简单的,手机能看得清楚吗?
private void addTwoColor(Color beginColor, Color endColor, int step) {
//用浮点数组存储RGB 3色,java中颜色值是0-255
float[] begin = beginColor.getRGBColorComponents(null);//开始的颜色
float[] end = endColor.getRGBColorComponents(null);//介绍的颜色
// 这段代码是生成两个颜色之间step数量个渐变色
// 没明白你的问题的后半部分,猜测也是要求生成两个颜色之间
// 的N个渐变色,即使我理解错,应该问题不大,反正算法简单,
// 你一看也就明白
for (int j = 0; j < step; j++) {
float f[] = new float[3];
for (int i = 0; i < 3; i++) {
//这个就是算法,RGB三色都按同样的算法
f[i] = begin[i] - (begin[i] - end[i]) * j / step;
}
Color color = new Color(f[0], f[1], f[2]);
this.colorList.add(color);
}
}
追问和我理解一样,现在没有编辑环境所以问一下进行确认~谢谢咯!