我的场景中有一个3D地形,我有地形所有顶点的位置。
我想在程序上将任何几何体放在这个地形上。目前我只能将3D模型放在顶点上,如下图所示。
如果我要在突出显示的平面上渲染草,我需要计算平面的斜率,因此问题。
如何计算3D平面的坡度以获得由4个点构成的平面内的坐标?如前所述,我拥有制造飞机的所有4个点。
还有其他更有效的方法来实现我想要做的事情[与飞机的碰撞检测可能是?]
答案 0 :(得分:2)
将矩形变为三角形。这将使许多事情变得更简单,因为示例中的矩形可能不是平面的。
选择三角形的两边并创建两个指向这些边的向量(即v1 = p2 - p1
和v2 = p3 - p1
)。要获得随机点,请使用:
p = p1 + v1*x + v2*y
其中p1
是两个向量的公共起点,x
和y
是0到1之间的随机数。如果(x+y)/2
的总和是> 0.5,然后该点在三角形之外(你也可以说它在第二个三角形中)。
相关:
答案 1 :(得分:1)
如果不是平面的话,没有一种独特的方法可以在3D空间中对4-gon进行参数化。在最简单的将其拆分为2个三角形之后,一个简单的变体就是使用参数化
p1+(p2-p1)*x+(p3-p1)*y+(p4-p3-p2+p1)*x*y, 0 <= x,y <= 1
这在边缘处是线性的,因此相邻的4-gons将组合在一起。
关键词:双线性(补丁?),重心坐标