[英]Drawing a map from edges and vertices in Java
給定大量的頂點和邊緣。 頂點被賦予x和y坐標,並且每個邊都有兩個頂點。
對於縮放,簡單的解決方案是僅繪制在給定的x和y坐標中具有頂點的所有邊緣,然后放大屏幕,而不是在地圖上繪制每個邊緣。 但是,如何繪制剛穿過放大區域的邊緣?
我能想到的唯一解決方案是,通過找到邊緣的每個末端的x和y坐標,線性遍歷每個邊緣並計算該邊緣是否會進入我放大的區域。 有人對此有偷偷摸摸的解決方案嗎?
此外,關於平移,最好的解決方案不是在用戶看到的區域周圍以相同的大小加載8個盒子嗎?
編輯:我忘了說,不同的邊緣中都有信息,因此根據每個縮放級別,將繪制不同類型的邊緣,這就是為什么我更喜歡進行自己的縮放。
因此,您想使用Java來做到這一點,但沒有告訴您要使用的圖形庫。 當繪圖變得更加復雜和密集時(例如在您的示例中),您應該使用諸如OpenGL之類的更復雜的工具,而不是自己考慮計算縮放比例。 要將其與Java一起使用,有一個包裝器庫: JOGL 。
OpenGL提供了繪制頂點和形狀的工具,您可以使用相機來組織視圖和縮放。
因此,首先我建議您熟悉圖形編程(實際上,使用哪種編程語言或使用哪種庫都沒有關系)。
我發現這些教程很有幫助:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.