三个相邻矩形的颜色连续变化
Continuous varying color in three adjacent rectangles
我可以用三种不同的颜色绘制三个相邻的矩形,如下所示:
在这里,在这三个矩形中我可以使用如下不同的颜色:
- 上部矩形的颜色从 BLUE 到 GREEN
- 中间的矩形是绿色
的统一颜色
- 下方矩形的颜色从 绿色 到 红色
但是,我需要一些不同的东西。我想在这三个矩形中使用从 BLUE 到 RED 的连续变化颜色。我可以使用一个矩形而不是三个。但是我必须使用三个矩形..我想要如下:
可以做到这些吗?
[注意:可以有可变数量的矩形。它是三个矩形的样本。我也可以获得 100 个矩形。然后我将从 BLUE 到 RED 从上到下改变颜色]
其实我用很多矩形画了一辆汽车。现在我需要用渐变色给它上色。
您在片段着色器中使用不同颜色看到的插值是颜色分量的线性插值:
R = R1 + (R2-R1)*scale
G = G1 + (G2-G1)*scale
B = B1 + (B2-B1)*scale
A = A1 + (A2-A1)*scale
在你的例子中 C1(0,0,1,1)
和 C2(1,0,0,1)
是插值的。比例是 [0,1].
范围内从第一个顶点到最后一个顶点的相对值
您需要做的是在设置顶点颜色时实现相同的算法,以实现平滑的渐变。要使用我发布的算法,你已经有了 2 种颜色,你只需要比例:顶部顶点比例始终为 0,底部顶点比例始终为 1。然后必须相对计算所有中间顶点:对于 2 个相等的矩形,你需要获得中间位置的比例为 .5;如果有 3 个相等的三角形,则需要 2 个中间比例尺,例如 .3333 和 .6666...所以模式是,对于 N 个矩形,您需要 N+1 个比例尺:
scale[i] = 1.0/N * i
如果矩形的大小不相等,您需要做的是求出矩形高度的总和,然后在它们之间分配值。
我可以用三种不同的颜色绘制三个相邻的矩形,如下所示:
在这里,在这三个矩形中我可以使用如下不同的颜色:
- 上部矩形的颜色从 BLUE 到 GREEN
- 中间的矩形是绿色 的统一颜色
- 下方矩形的颜色从 绿色 到 红色
但是,我需要一些不同的东西。我想在这三个矩形中使用从 BLUE 到 RED 的连续变化颜色。我可以使用一个矩形而不是三个。但是我必须使用三个矩形..我想要如下:
可以做到这些吗?
[注意:可以有可变数量的矩形。它是三个矩形的样本。我也可以获得 100 个矩形。然后我将从 BLUE 到 RED 从上到下改变颜色]
其实我用很多矩形画了一辆汽车。现在我需要用渐变色给它上色。
您在片段着色器中使用不同颜色看到的插值是颜色分量的线性插值:
R = R1 + (R2-R1)*scale
G = G1 + (G2-G1)*scale
B = B1 + (B2-B1)*scale
A = A1 + (A2-A1)*scale
在你的例子中 C1(0,0,1,1)
和 C2(1,0,0,1)
是插值的。比例是 [0,1].
您需要做的是在设置顶点颜色时实现相同的算法,以实现平滑的渐变。要使用我发布的算法,你已经有了 2 种颜色,你只需要比例:顶部顶点比例始终为 0,底部顶点比例始终为 1。然后必须相对计算所有中间顶点:对于 2 个相等的矩形,你需要获得中间位置的比例为 .5;如果有 3 个相等的三角形,则需要 2 个中间比例尺,例如 .3333 和 .6666...所以模式是,对于 N 个矩形,您需要 N+1 个比例尺:
scale[i] = 1.0/N * i
如果矩形的大小不相等,您需要做的是求出矩形高度的总和,然后在它们之间分配值。