[英]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.