2017-01-27 64 views
0

我有一張地圖中的數據,其中以下位置被視爲地圖的邊界。在縮放的地圖上定位位置

  • 左上被認爲是(92,49)
  • 左下(-93,49)
  • 右上(92,-25),
  • 右下(-93,-25)

我有很多座標之間的浮動值,我想將他們放在地圖上查看。

遊戲地圖本身實際上只有185長,74長,但我已經將地圖縮放到1024和786,以獲得更好的可視性。

如何在Java JFrame中將左上角視爲0,0的情況下在此地圖上正確繪製一個點,例如-52.6,12.55?比如,我將如何縮放它以獲得放大地圖中的適當位置來繪製點?

回答

1

我認爲你的786的新高度是一個錯字,應該是768,而舊地圖角落的座標很可能是錯誤標記的。

您需要創建一個映射函數。

mappedX = (x - oldTopX) * (newWidth/oldWidth); 
mappedY = (oldTopY - y) * (newHeight/oldHeight); 

因此,對於你的x座標-52.6,新映射X點(-52.6 - -93)*(一百八十五分之一千○二十四),這等於223.6

新映射的y值是(49 - 12.55)/(785/74)= 387.2

維基百科有一個很好的2D計算機圖形頁面覆蓋你在找什麼:https://en.wikipedia.org/wiki/2D_computer_graphics

+0

這正是我需要的。謝謝! – DominicEU