如何改变 GradientPaint 的方向?
How to change the direction of a GradientPaint?
我正在尝试绘制一个从红色到蓝色的渐变矩形。我有以下代码:
g2d.setPaint(new GradientPaint(0, 0, Color.RED, 1000, 1000, Color.BLUE));
g2d.fillRect(0, 0, 1000, 1000);
这是有效的。然而,渐变的方向是对角线的,从矩形的左上角点到右下角点(另一种看待这个的方式是渐变沿着y=-x + windowHeight
)
的线
我希望我的渐变从上到下。所以矩形的整个顶部是红色的,整个底部是蓝色的。换句话说,颜色应该只随着 y 坐标改变,给定任何 y=point 线,颜色应该在该线上是均匀的。
我还包含了以下图片,以大致了解我正在尝试做的事情:
我怎样才能做到这一点?
这一切都与你的渐变矢量有关。这里:(0, 0, Color.RED, 1000, 1000, Color.BLUE)
你的向量是一个对角线向量,它起始于 [0, 0],然后结束或指向 [1000, 1000] 或 45 度角。
将其改为直接向下:[0, 0] 到 [0, 1000] 应该效果很好。例如,
new GradientPaint(0, 0, Color.RED, 0, 1000, Color.BLUE)
我正在尝试绘制一个从红色到蓝色的渐变矩形。我有以下代码:
g2d.setPaint(new GradientPaint(0, 0, Color.RED, 1000, 1000, Color.BLUE));
g2d.fillRect(0, 0, 1000, 1000);
这是有效的。然而,渐变的方向是对角线的,从矩形的左上角点到右下角点(另一种看待这个的方式是渐变沿着y=-x + windowHeight
)
我希望我的渐变从上到下。所以矩形的整个顶部是红色的,整个底部是蓝色的。换句话说,颜色应该只随着 y 坐标改变,给定任何 y=point 线,颜色应该在该线上是均匀的。
我还包含了以下图片,以大致了解我正在尝试做的事情:
我怎样才能做到这一点?
这一切都与你的渐变矢量有关。这里:(0, 0, Color.RED, 1000, 1000, Color.BLUE)
你的向量是一个对角线向量,它起始于 [0, 0],然后结束或指向 [1000, 1000] 或 45 度角。
将其改为直接向下:[0, 0] 到 [0, 1000] 应该效果很好。例如,
new GradientPaint(0, 0, Color.RED, 0, 1000, Color.BLUE)