簡體   English   中英

在Java中從邊緣和頂點繪制地圖

[英]Drawing a map from edges and vertices in Java

給定大量的頂點和邊緣。 頂點被賦予x和y坐標,並且每個邊都有兩個頂點。

對於縮放,簡單的解決方案是僅繪制在給定的x和y坐標中具有頂點的所有邊緣,然后放大屏幕,而不是在地圖上繪制每個邊緣。 但是,如何繪制剛穿過放大區域的邊緣?

我能想到的唯一解決方案是,通過找到邊緣的每個末端的x和y坐標,線性遍歷每個邊緣並計算該邊緣是否會進入我放大的區域。 有人對此有偷偷摸摸的解決方案嗎?

此外,關於平移,最好的解決方案不是在用戶看到的區域周圍以相同的大小加載8個盒子嗎?

編輯:我忘了說,不同的邊緣中都有信息,因此根據每個縮放級別,將繪制不同類型的邊緣,這就是為什么我更喜歡進行自己的縮放。

因此,您想使用Java來做到這一點,但沒有告訴您要使用的圖形庫。 當繪圖變得更加復雜和密集時(例如在您的示例中),您應該使用諸如OpenGL之類的更復雜的工具,而不是自己考慮計算縮放比例。 要將其與Java一起使用,有一個包裝器庫: JOGL

OpenGL提供了繪制頂點和形狀的工具,您可以使用相機來組織視圖和縮放。

因此,首先我建議您熟悉圖形編程(實際上,使用哪種編程語言或使用哪種庫都沒有關系)。

我發現這些教程很有幫助:

更新

  • OpenGL非常適合繪制2D(您將在本教程中學習)。
  • 特別是如果您要繪制的內容根據縮放級別而變化,則圖形庫很有用,因為至少每次內容更改時都會渲染整個場景。 您可以在渲染之前簡單地檢查縮放級別並根據它繪制事物。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM