我想可视化一个这样的地图:http://www.time.com/time/covers/20061030/where_we_live/。
我能用opengl或processing来做这件事吗?多么?
发布于 2010-11-07 19:02:47
我认为最简单的方法不是3D,而是使用基本的等距技术和覆盖。
拿起你的地图,将其缩放到一半的高度,以建议透视,并将其绘制在画布上。
现在,创建一个与原始贴图一样大的空透明位图,并放置带有数据的浅粉色圆圈,就像在地图上一样。将此位图也缩放到一半高度,并将其绘制在原始贴图上。
在此之后,创建另一个,但使您的圆圈半径小1个像素,并将颜色向深红色移动更多的色调。再次将其缩放到一半的高度,并将其绘制在现有的构图上,但在y方向上要高一个像素。继续重复这一步,直到地图上最大的圆圈达到0半径,这样就画出了最高峰。
我认为这应该会创建与示例中的地图非常相似的东西,而不需要复杂的3D几何图形。
在以下情况下,它在视觉上更类似于时间图:
-You使用反指数公式来减小每一步的圆的大小。在所提出的算法中,尖峰将是相当无聊的线性(锥形),并且不会变得很高。
-You使用原始地图的轮廓作为透明度蒙版来限制每个数据层。在缩放到一半高度之前执行此操作。这将您的数据尖峰限制在地图的形状上,并防止它们越过边界进入大海。
当然,这个算法可以通过绘制已经使用椭圆的一半高度的数据层来优化,并直接在地图上绘制它们。不过,圆/层方法更好地说明了基本技术,并使轮廓约束步骤更容易完成。
发布于 2010-11-07 20:04:00
就我个人而言,我建议使用面孔网格,根据美国地图进行剔除,然后根据链接中显示的比例对每个点进行提升和着色。
我认为它实际上比NielsK概述的方法更简单,困难的部分只是以一种易于解析的格式获得所需的数据。
https://stackoverflow.com/questions/4084728
复制相似问题