Canvas 객체 (선, 꼭지점, 삼각형 등)를 만들고 있는데, 한 점을 중심으로 회전을 적용하고 싶습니다.Java로 점 주위의 다각형을 회전하는 방법은 무엇입니까?
점은지도에 GeoPoint의에 연결되어 있기 때문에이 모든지도가 회전 회전() 메소드를 사용, 그래서 만약 내가 캔버스의 rotate() 메서드를 사용할 수 없습니다...
문제는 Canvas가 Point (int, int)를 필요로하고 회전을 적용하면 cos 및 sin 함수 때문에 double이 생성됩니다. 그래서 int로 double을 캐스팅했기 때문에 모든 포인트에 회전을 적용하면 어떤 그래픽 문제가 발생합니다 ...
그래서 가장 좋은 해결책을 찾고 있습니다. 여기
내 회전 코드 :
public Point rotatePoint(Point pt, Point center)
{
this.angle = ((this.angle/180)*Math.PI);
double cosAngle = Math.cos(this.angle);
double sinAngle = Math.sin(this.angle);
pt.x = center.x + (int) ((pt.x-center.x)*cosAngle-(pt.y-center.y)*sinAngle);
pt.y = center.y + (int) ((pt.x-center.x)*sinAngle+(pt.y-center.y)*cosAngle);
return pt;
}
좋아, 내가 실수를 수정, 편집이 내 게시물을했습니다, 당신은 당신의 응답을 @izomorphius 감사합니다 :) 사본을 수행/:
가나는 또한 다음과 같은 변화를 사용하는 대신 다음을 시도 붙여 넣기 – Bibu