我的场景中有一个 3D 地形,我有地形所有顶点的位置。
我想按程序将任何几何图形放置在该地形上。目前我只能将 3D 模型放置在顶点上,如下图所示。
如果我要在突出显示的平面上渲染草,我需要计算平面的坡度,因此出现了问题。
如何计算 3D 平面的斜率以获得由 4 个点构成的平面内的坐标?如前所述,我拥有构成飞机的所有 4 个点。
还有没有其他更有效的方法来实现我想要做的事情[可能是与飞机的碰撞检测?]
最佳答案
将矩形变成三角形。这将使许多事情变得更加简单,因为示例中的矩形可能不是平面的。
选择三角形的两条边并创建两个沿着这些边指向的向量(即 v1 = p2 - p1
和 v2 = p3 - p1
)。要获得 上的随机点,请使用:
p = p1 + v1*x + v2*y
其中 p1
是两个向量的共同起点,x
和 y
是 0 到 1 之间的随机数。如果总和(x+y)/2
> 0.5,则该点位于三角形之外(也可以说它位于第二个三角形内)。
相关:
关于opengl - 如何求 3D 平面的斜率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23763796/