在Java中从边和顶点绘制地图

时间:2013-03-19 11:07:46

标签: java graphics maps zooming

给定大量顶点和边缘。顶点给出x和y坐标,每个边都有两个顶点。

对于缩放,简单的解决方案是仅绘制在给定x和y坐标中具有顶点的所有边,即屏幕放大,而不是绘制地图上的每个边。但是,我将如何绘制刚刚穿过我放大的区域的边缘?

我能想出的唯一解决方案是线性地遍历每条边并计算边缘是否会进入我放大的区域,方法是找到边缘每一端的x和y坐标。有没有人对此有一个偷偷摸摸的解决方案?

此外,关于平移,最好的解决方案是不是在用户看到的区域周围加载8个相同大小的盒子?

编辑:  我忘了说,不同的边缘都有信息,所以根据每个缩放级别,将绘制不同类型的边缘,这就是我喜欢自己进行缩放的原因。

1 个答案:

答案 0 :(得分:1)

所以你想用Java做这件事,但你没有告诉你想要使用什么图形库。 当绘图变得越来越复杂和密集时,你应该使用更复杂的东西,如OpenGL,而不是考虑自己计算缩放。要在Java中使用它,有一个包装器库:JOGL

OpenGL提供了绘制顶点和形状的工具,您可以使用相机来组织视图和缩放。

首先,我建议熟悉图形编程(并且在哪种编程语言或哪种库中并不重要。)

我发现这些教程很有用:

更新

  • OpenGL非常适合绘制2D(正如您将在教程中学到的那样)。
  • 特别是如果根据缩放级别绘制的内容发生变化,图形库很有用,因为至少每次内容更改时都会呈现整个场景。您可以在渲染之前简单地检查缩放级别并根据它绘制内容。