1

我想可视化这样的地图:http ://www.time.com/time/covers/20061030/where_we_live/ 。

我可以用opengl或处理来做到这一点吗?如何?

4

2 回答 2

0

就我个人而言,我建议使用面部网格,根据美国地图进行剔除,然后根据链接中的比例提升和着色每个点。

我认为它实际上会比 NielsK 概述的方法更简单,困难的部分只是以易于解析的格式获取您需要的数据。

于 2010-11-07T12:04:00.473 回答
0

我认为最简单的方法不是在 3D 中,而是使用基本的等距技术和重绘。

拿起您的地图,将其缩放到一半高度以建议透视,然后将其绘制在画布上。

现在,创建一个与原始地图一样大的空透明位图,并在地图上放置带有数据的淡粉色圆圈。将此位图也缩放到一半高度并将其绘制在原始地图上。

在此之后,创建另一个,但使你的圆的半径小 1 个像素,并将颜色再向深红色移动。再次将其缩放到一半高度,并将其绘制在现有构图中,但在 y 方向上高出一个像素。继续重复此步骤,直到地图上最大的圆圈达到 0 半径,从而绘制出最高峰。

我认为这应该创建非常类似于示例中的地图的东西,而不需要复杂的 3D 几何图形。

在以下情况下,它在视觉上更类似于 TIME 地图:

-您使用逆指数公式来减少每一步的圆圈大小。在所提出的算法中,尖峰将是相当无聊的线性(锥形)并且不会变得非常高。

-您使用原始地图的轮廓作为透明蒙版来限制每个数据层。在缩放到一半高度之前执行此操作。这将您的数据峰值限制为地图的形状,并防止它们溢出边界进入大海。

当然,可以通过使用椭圆在半高处绘制数据层来优化该算法,并将它们直接绘制在地图上。圆形/图层方式更好地说明了基本技术,并且更容易进行轮廓限制步骤。

于 2010-11-07T11:02:46.533 回答