我一直坐着用鉛筆在晚上的更好的一部分試圖回憶如何實現一個可以瀏覽2D區域的可縮放視口。自從我第一次聽說它已經有一段時間了,但我想我已經明白了,我只需要驗證一下。需要有人來驗證我的數學是正確的
我們擁有一個帶有「經典」笛卡爾座標系的2D世界,x軸指向右側,y軸指向頂部。
在世界區域,我們有2點PMIN和P最大,所限定的矩形的視口,其中: PMIN(XMIN,YMIN),P最高(XMAX,YMAX)。這些點定義視口的大小,位置和規模
在世界領域,我們有一個點P,其中PMIN < P(X,Y)< P最大。 (P在視口矩形中)
要顯示整個該死的東西,我們有一個畫布(例如),它有一個「改變」的座標系,x軸指向右邊,y軸指向下。畫布的尺寸是MaxX和MaxY。畫布的大小是固定的。現在
,爲了在畫布上顯示點P '(X',Y')我需要計算是這樣的位置:
x' = (x - xmin) * Sx
,其中Sx = MaxX/(xmax - xmin)
y' = MaxY - (y - ymin) * Sy
,其中Sy = MaxY/(ymax - ymin)
*請注意,Y」座標反轉由於畫布的座標系統
在其他工作ords:上面的數學應該考慮顯示一個點,同時考慮到規模和vieport的位置。我對麼 ?如果不是,請證明我錯了。
快速反應的歡呼聲 - 我現在可以死一個快樂的人 – Maciek 2009-10-20 22:28:35