2012-01-09 2 views
0

double x와 double y를 사용하여 직사각형 2D를 변환하고 싶습니다. rectangle2D가 translate 메소드를 지원하지 않는 것 같습니다. 적절한 방법은 무엇입니까?java translate rectangle 2D

+0

자세한 정보와 약간의 코드는 질문에서 모호성을 제거하는 데 도움이 될 수 있습니다. java.awt.geom.Rectangle2D.Double 객체를 참조하고 있습니까? 단순히 X 또는 Y 값에 추가 할 수없는 이유가 있습니까? 정확히 무엇을 요구하고 있는지 확실하지 않습니다. – Jyro117

+0

모든 작업에 대해이 [link] (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 변수를 이전에 double 메서드가있는 Graphics2D으로 캐스트해야합니다. 대부분 이중 매개 변수가 사용됩니다.

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

더블 직사각형 (drawRect처럼)의 Graphics2D에서 사용할 수 없습니다 이다. 그러나 이들은 자신의 프로그래밍을 위해 java.awt.geom.Rectangle2D.Double으로 사용할 수 있습니다.