【发布时间】:2014-02-04 00:40:37
【问题描述】:
我目前正在开展一个项目,该项目旨在使用 Google Earth API 将现实世界的数据映射到 Google Earth 地球仪上。那些要求比插件提供的更苛刻的视觉效果的大佬们(即随着时间的推移具有不同不透明度填充的花哨的线条、图像和形状),因此我们决定使用 Processing.js 语言来处理事物的图形方面。
目前,我在后台建立了 GE 插件。 Processing.js 草图直接位于其上方的 canvas 元素中,该元素具有 CSS 规范:pointer-events: none(即,这允许鼠标与插件交互,而编写的任何内容处理草图显示在顶部!)
我的问题涉及 3D 投影。当图形在 GE 中显示时,该插件能够处理背景中所有令人讨厌的矩阵变换(这意味着如果你在 GE 中放置一个点在 lat:90, lon:0, 无论你如何在地球上移动,该点将保持在北极上方)。在处理覆盖中,我试图模拟这一点。
与。很多。困难。
Google Earth ge.getView().project(lat, lon, alt, altMode) 函数是我目前用来将 3D 纬度/经度点投影到 2D 坐标中的函数(然后使用处理在屏幕上的返回点处绘制一个椭圆)。您可以在下面看到:
您会注意到红色和黄色椭圆实际上是地球背后的点。这是我的问题,我迫切需要一些建议/帮助。使用 GE 插件实现反向剔除的最有效方法是什么,以便 Processing.js 在地球的“背面”旅行时不会绘制椭圆。我的脑筋急转弯是我仍然想保持在 X、Y 和 Z 方向上绕地球旋转的能力(即不限制视口)!
感谢堆栈溢出!
【问题讨论】:
标签: 3d processing projection google-earth-plugin culling