繁体   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