正如您可以从 this screenshot 看出的那样,我正在尝试为我正在开发的平台游戏制作一个物理引擎,但我遇到了一个明确的问题:我需要能够找出您可以看到的构成此网格的任何一个三角形的角度,这样我就可以计算出玩家在该三角形上的旋转以及角加速度。
我可以使用我创建的算法来查找玩家接触的任何三角形的所有 3 个点的位置,但我不知道如何使用这些点来计算三角形的旋转。
我所说的旋转是指法线远离脸部中心的方向,即人站在该表面上时倾斜的角度。有人能想出一系列方程来解决这个问题吗?
最佳答案
如果计算两个向量的叉积:
p1 - p0
和
p2 - p0
其中 p0
、p1
和 p2
是三角形的三个顶点,您将得到法线。如果三角形的顶点相对于其外部法线顺时针排列,则认为三角形指向您。这称为左手定则。想象一下握住你的左手,手指从 p0
curl 到 p1
,你的拇指朝面部法线方向伸出:
关于math - 给定三角形顶点的坐标,求 3D 三角形面的法线角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1516296/