Java перевод прямоугольник 2D - PullRequest
0 голосов
/ 09 января 2012

Я хочу перевести прямоугольник 2D, используя двойной x и двойной y. Кажется, что rectangle2D не поддерживает метод translate. Какой метод следует использовать?

Ответы [ 2 ]

2 голосов
/ 09 января 2012

Если вам нужно, чтобы он оставался Rectangle2D, вам, возможно, придется написать собственный метод, который просто добавляет к x и y.

Вы также можете выполнять произвольные преобразования с помощью AffineTransform, но это превратитв общую форму (так как это преобразование может сделать его уже не прямоугольным).

AffineTransform at = AffineTransform.getTranslateInstance(tx, ty);
Shape transformed = at.createTransformedShape(rectangle);
0 голосов
/ 09 января 2012

Вы должны преобразовать старую переменную Graphics в Graphics2D, которая имеет двойные методы. В основном используются двойные параметры.

@Override
public void paint(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    g.translate(3.0, 4.0);

Двойные прямоугольники недоступны в Graphics2D (как в drawRect). Однако они доступны для собственного программирования как java.awt.geom.Rectangle2D.Double.

...