【问题标题】:Drawing a map from edges and vertices in Java在 Java 中从边和顶点绘制地图
【发布时间】:2013-03-19 11:07:45
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: java graphics maps zooming


    【解决方案1】:

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

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

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

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

    更新

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

    【讨论】:

    • 我可以使用 OpenGL 进行简单的 2D 绘图吗?绘图应该不是问题。我忘了说,不同的边缘都有信息,所以根据每个缩放级别,会绘制不同类型的边缘,这就是为什么我更喜欢自己做缩放。我会将此添加到我原来的问题中。
    猜你喜欢
    • 1970-01-01
    • 2020-07-15
    • 2023-03-14
    • 1970-01-01
    • 2014-10-19
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    相关资源
    最近更新 更多