Java 如何更改GradientPaint的方向?

Java 如何更改GradientPaint的方向?,java,swing,awt,java-2d,linear-gradients,Java,Swing,Awt,Java 2d,Linear Gradients,我试图画一个从红色到蓝色的渐变矩形。我有以下代码: g2d.setPaint(new GradientPaint(0, 0, Color.RED, 1000, 1000, Color.BLUE)); g2d.fillRect(0, 0, 1000, 1000); 这是有效的。但是,渐变的方向是对角的,从矩形的左上角点到右下角点(另一种方式是渐变沿着y=-x+windowHeight的线) 我希望我的梯度从上到下。所以矩形的整个顶部是红色的,整个底部是蓝色的。换句话说,颜色应仅随y坐标变化,给

我试图画一个从红色到蓝色的渐变矩形。我有以下代码:

g2d.setPaint(new GradientPaint(0, 0, Color.RED, 1000, 1000, Color.BLUE));
g2d.fillRect(0, 0, 1000, 1000); 
这是有效的。但是,渐变的方向是对角的,从矩形的左上角点到右下角点(另一种方式是渐变沿着
y=-x+windowHeight
的线)

我希望我的梯度从上到下。所以矩形的整个顶部是红色的,整个底部是蓝色的。换句话说,颜色应仅随y坐标变化,给定任何y=点线,该线上的颜色应一致

我还提供了以下图片,以大致了解我正在尝试做什么:

我怎样才能做到这一点


这一切都与梯度向量有关。这里:
(0,0,Color.RED,10001000,Color.BLUE)
你的向量是一个对角线向量,它从[0,0]开始,然后以[1000,1000]或45度角结束或指向

将其更改为直接向下[0,0]到[0,1000]应该可以正常工作。e、 g,

new GradientPaint(0, 0, Color.RED, 0, 1000, Color.BLUE)

完美的工作得很好。事后看来似乎很明显,我想让我困惑的部分是梯度超过指定范围后的行为,现在我知道了:它们会重复。谢谢