2013-02-27 2 views
1

자바에서 이미지를 회전하는 방법을 알고 있지만 Graphics2D.rotate 메서드를 사용하여 이미지 중심을 중심으로 이미지를 회전하는 방법을 찾을 수 없습니다. 여기에 내가 가진 것이있다.자바, 자신의 주위에 이미지 회전

public void rotateLeft(Graphics2D g) { 
    rotateLeft++; 

    g.rotate(Math.toRadians(rotateLeft), charX, charY); 
} 

charX와 charY는 좌표입니다 ... 그럼, 아무도 도와 줄 수 있습니까?

답변

4

당신은 사용할 수 있습니다

g.rotate(angle, (imageWidth/2) + 1, (imageHeight/2) + 1); 
+0

당신이 이미지를'(0,0)' – asermax

+0

로 드로잉한다고 가정하면 작동하지 않습니다 ... 또한, 이미지가 화면 주위를 움직여서 메서드가 동적이어야합니다. – zfollette

+0

나는 이것을 여러 번 사용했다. 문제를 보여주기 위해 [SSCCE] (http://sscce.org/)를 게시 할 수 있습니까? – Reimeus

0

이 내가 그 일을하고 어떻게 :

 AffineTransform oldTrans = g2d.getTransform(); 
     g2d.rotate(-theta,xNow+bufferedBox.getWidth()/2, this.getHeight() - groundY - yNow - bufferedBox.getHeight()/2); 
     g2d.drawImage(bufferedBox, xNow, this.getHeight() - groundY - yNow - bufferedBox.getHeight(), null); 
     g2d.setTransform(oldTrans); 

을 내 상자가 될 곳 yNow 내 좌표는 xNow. "this"는 jPanel을 가리키고 groundY는 오프셋입니다 (지상 상단에 있음). bufferedBox가 내 이미지를 참조합니다