我正在研究弹丸的物理模拟,而且我被困在地面上。我有四边形,like this
我将点存储在一个数组中,所以我想如果我采用发生碰撞的四边形并计算四边形的角度(在x和z方向),我可以用它来改变速度弹丸。
这就是我被困住的地方。我以为我应该找到最低点和最高点,然后找到它们之间的向量,但这不会给出所有方向的角度,这就是我想要的。我知道必须有这样做的方法,但是如何?
答案 0 :(得分:1)
你想要的是四边形的法线。
Here's an answer that shows you how to get a quad's normal
在你恢复正常后,你需要计算collision's response的力量。它的方向是四边形的法线,强度是弹丸在四边形方向上施加的强度。通过使用射弹速度和反向四边形法线(Here's a wiki link for the dot product)
的点积来计算施加的力响应向量应为:
Vector3 responseForce = dot(projectile.vel, -1 * quad.normal) * quad.normal;
projectile.vel += responseForce;