2016-01-28 3 views
1

Я пытаюсь нарисовать прямоугольник градиента, который идет от красного к синему. У меня есть следующий код:Как изменить направление GradientPaint?

g2d.setPaint(new GradientPaint(0, 0, Color.RED, 1000, 1000, Color.BLUE)); 
g2d.fillRect(0, 0, 1000, 1000); 

Это работает. Однако направление градиента является диагональным, от верхней левой точки прямоугольника до нижней правой точки (другой способ посмотреть, что градиент следует по линии y=-x + windowHeight)

Я бы хотел, чтобы мой градиент идти сверху вниз. Таким образом, вся вершина прямоугольника красная, а вся дно голубая. Другими словами, цвет должен изменяться только с координатой y, поскольку любая y = точечная линия должна быть однородной по этой линии.

Я включил следующие изображения и дать общее представление о том, что я пытаюсь сделать: enter image description here

Как я могу это сделать?

enter image description here

ответ

5

Это все связано с вектором вашего градиента. Здесь: (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) 
+0

Отлично! Отлично. Кажется очевидным, оглядываясь назад, я предполагаю, что часть, которая меня сбивала с толку, - это поведение градиентов, когда они перешли их указанный диапазон, теперь я знаю: они повторяются. Благодаря! –