2011-03-17 3 views
3

좋아요 이미지 위에있는 사각형을 회전하려고했습니다. 이미지를 표시하는 Scrollable 클래스가 있습니다. 이미지 상단에 직사각형을 그릴 수 있습니다. 내 문제는 이미지를 회전 할 때 사각형을 회전하려고합니다. 사각형이 손실되어 잘못된 위치에 배치됩니다.자바에서 앵커/회전 지점을 찾는 방법은 무엇입니까?

나는 이미 Graphics2D, AffineTransform, createTransformedShape()를 고소했지만 운이 없었습니다.

내가 지금하려는 것은 수동으로 사각형을 회전하는 것입니다. 나는 아래의 공식을 사용하여 사각형의 점 (x, y)를 얻으려고 :

double rectX = (Math.cos(Math.toRadians(90)) * (x - anchorX) - Math.sin(Math.toRadians(90)) * (y - anchorY)) + anchorY; 

double rectY = (Math.sin(Math.toRadians(90)) * (x - anchorX) - Math.cos(Math.toRadians(90)) * (y - anchorY)) + anchorY; 

는 어떻게 자바를 사용하여 anchorX 및 anchorY 값을 찾을 수 있습니까? 이미지 높이를 2로 다이빙하려고 시도했지만 모든 회전 각도에서 작동하지 않습니다. JPanel 너비와 높이 또는 다른 것을 가져야합니까? Java가 앵커 포인트를 찾기 위해 사용하는 수식이 있습니까?

답변

1

나는 목표의 모르겠지만, 두 가지 다른 방법을 참조하십시오 here을 같이

  • 역 변환을 사용합니다.

  • BufferedImage에 직립 이미지와 직사각형을 렌더링하고 here처럼 합성 이미지를 회전합니다.

1

상자를 맨 위에 굴리는 것처럼 보이게하려면 여행 방향의 하단 모서리를 찾아야합니다. 오른쪽으로 굴러가는 경우 오른쪽 하단이 필요합니다.

관련 문제