1

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

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

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

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

编辑:我忘了说,不同的边缘都有信息,所以根据每个缩放级别,会绘制不同类型的边缘,这就是为什么我更喜欢自己缩放。

4

1 回答 1

1

所以你想用 Java 来做,但你没有告诉你要使用什么图形库。当绘图变得像您的示例中那样变得更加复杂和密集时,您应该使用更复杂的东西,例如OpenGL,而不是考虑自己计算缩放。要将它与 Java 一起使用,有一个包装库:JOGL

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

所以首先我建议熟悉图形编程(使用哪种编程语言或使用哪个库并不重要)。

我发现这些教程很有帮助:

更新

  • OpenGL 非常适合绘制 2D(正如您将在教程中学习的那样)。
  • 特别是如果您要绘制的内容根据缩放级别更改,则图形库很有用,因为至少每次内容更改时都会渲染整个场景。您可以在渲染之前简单地检查缩放级别并根据它进行绘制。
于 2013-03-19T12:14:52.740 回答