我目前正致力于构建一个在地球上的游戏,我计划存储数据的方式是在6维的二维数组中,这是球体周围的高度图(on立方体的面)。 我的问题是这样的,因为它从球体的中心向外指向我如何确定这两件事归一化向量:将球体投影到立方体上
- 它相交
- 的X飞机/ y坐标我应该查看我的二维数组以获得高度。
我当前的解决方案是本(使用XNA):
- 构建从[0,0]指出沿供给方向矢量的光线。循环通过每个表面并执行光线/平面相交(这是由XNA框架提供的方法)以获得到交点的距离。选择最接近的平面(距离最短距离)
- 取出3D点,并将其转换为2D点,可用作数组查找来查找半径(这是我无法计算出的数学,或通过谷歌找到任何引用)。
一个有用的约束是球体/立方体系统围绕原点。
所以,需要解决的问题是: 给定一个方向向量,我该如何确定它与周围立方体的相交位置。使用这个结果,我怎么才能在这个立方体的脸上“画”的二维数组中获得正确的值?
Martin,您能编辑您的文章以包含更明确的问题吗? – JoshJordan 2009-06-14 17:18:45
当然,我想这不是很清楚。 – Martin 2009-06-14 19:31:49
你应该从一个立方体开始并镶嵌它。如果你的球体是一个由三角函数派生的球体,那么你可能会注意到一个奇点(这个球体会在极点处“夹住”)。如果你这样做,你的映射问题就会消失。 – 2009-06-24 12:32:10