2016-10-21 4 views
0

나는 2 차원 좌표를 가지고 :화면 좌표에서 등각 투영 좌표로의 변환을 계산하는 방법은 무엇입니까?

0, 0 
200, 0 
200, 100 
400, 100 
400, 200 
0, 200 

좌표는 다음과 같은 모양 대표 : enter image description here

을하지만 동적 화면이 등각 투영으로 변환 각 지점 좌표를 계산합니다. 그래서 문자 그대로 화면 좌표의 좌표 목록이 있고 그 모양의 등각 투영 '버전'을 나타내는 화면 좌표를 생성하고 싶습니다. 'isometric world'에서 좌표를 계산하고 싶지는 않습니다. 문자 그대로의 화면 좌표를 얻고 싶습니다. 이 (45 ° 회전하고, 수직 스케일링 0.5) 화면

enter image description here

어디 물음표 각 점입니까? 일부 좌표는 음수가 될 가능성이 높지만 괜찮습니다. 이는 가장 왼쪽의 x 좌표가 0이되도록 오프셋을 계산하여 논리적으로 해결할 수 있습니다.

답변

1

45도 회전하고,이 아핀 변환 0.5

의해 수직 스케일링 :
시프트를 회전 중심으로 (XC는 YC)는 XC 일부가
회전
시프트 다시 좌표 yc (화면 가장자리에 맞추기 위해 다른 y- 시프트가 필요할 수도 있음)

sq = Sqrt(2)/2 //Cos and Sin of 45 
    x_new = xc + (x_old - xc) * sq - (y_old - yc) * sq 
    y_new = 0.5 * (yc + (x_old - xc) * sq + (y_old - yc) * sq) 

(아마도 좌표계 방향에 따라 (+-)(++)에서 (++)(-+)까지 대괄호로 기호 조합을 변경해야합니다.)

+0

예! 문제 해결됨. 감사. – user2190492

관련 문제