2012-01-09 2 views
0

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

+0

Дополнительная информация и немного кода могут помочь устранить любые неоднозначности из вашего вопроса. Вы имеете в виду объект java.awt.geom.Rectangle2D.Double? Есть ли причина, по которой вы не можете просто добавить значения X или Y? Не совсем уверен, что вы просите. – Jyro117

+0

Для всех операций проверьте это [ссылка] (http://www.java-tips.org/java-se-tips/java.awt.geom/transform-translation-and-rotation.html) –

ответ

2

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

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

AffineTransform at = AffineTransform.getTranslateInstance(tx, ty); 
Shape transformed = at.createTransformedShape(rectangle); 
0

Вам необходимо наложить старую 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.

Смежные вопросы