[問題] urmap,googleMaps地圖的平移和縮放要怎 …

看板GameDesign作者時間17年前 (2007/05/08 22:58), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串1/2 (看更多)
相信各位應該都有用過 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
見 #642
05/09 01:54, 1F

05/09 15:34, , 2F
嗯 那篇問題就是我問的,我有依照過#642的寫法寫,
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
文章代碼(AID): #16G90aSW (GameDesign)
文章代碼(AID): #16G90aSW (GameDesign)