[問題] urmap,googleMaps地圖的平移和縮放要怎 …
相信各位應該都有用過 urmap, GoogleMaps, 或 papago 吧?
它們都可以用滑鼠來平移 (pan) 和縮放 (zoom) 地圖,
現在我想用 java swing 寫出一個類似功能的東西,
平移對我來說沒問題,
但我寫出來的縮放, 並不是以畫面的中心做縮放,
就像這樣: http://www.cs.nccu.edu.tw/~s9204/java/CanvasTest.htm
(上面網址是 Java Applet, 需裝 JRE 5.0+ 才能執行)
(進入上面網址, 可看到左上角有個小圓, 請先用滑鼠左鍵把它
拖下來, 再做測試)
完整程式碼在:
http://www.cs.nccu.edu.tw/~s9204/java/test/CanvasTest.java
如果懶得看完整程式碼的話, 可以看一下精簡程式碼:
class Canvas extends JPanel {
// other code...
@override
void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
// pan and zoom
// panX, panY 是目前的平移量
// zoomX, zoomY 是目前的縮放量
g2d.translate(panX, panY);
g2d.scale(zoomX, -zoomY); // 使用 -zoomY 是因為要把 Y 軸方向倒過來
// draw something
g2d.drawLine(0, 0, 10, 10);
g2d.drawOval(-10, -10, 20, 20);
}
}
我想很久還是不知道要怎麼做,
所以請問各位到底怎麼讓它以畫面中心縮放?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.133.199
※ 編輯: eliang 來自: 220.132.133.199 (05/08 22:59)
推
05/09 01:54, , 1F
05/09 01:54, 1F
推
05/09 15:34, , 2F
05/09 15:34, 2F
→
05/09 15:35, , 3F
05/09 15:35, 3F
→
05/09 15:36, , 4F
05/09 15:36, 4F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章