卜若的代码笔记-unity系列-unity里面的数学-第二章:向量到平面的投影

it2025-04-13  24

1 平面的定义

在数学里面,我们通常认为平面方程表现为:

Ax+By+Cz+D=0:

定义为与固定点(x0,y0,z0)的连线垂直于固定方向(A,B,C)的所有的点的集合(360百科)

有了这个概念后,我们就可以通过一个点+一个法线求得平面方程了:

 

2 在Unity中,遇到平面的情况:

比如:

我希望求得这五个点在该平面上的一个投影:

,这个时候,我们就需要平面的相关知识。

这个平面方程我们可以直接通过点法式获得:

哎,脑阔疼

所以,为了简便起见,我们用性能小霸王的射线来进行处理:

我们已经获得了法向量n(也就是红色线)

五个球分辨沿着n的反方向发射一条射线,并和平面发生碰撞,碰撞的交点,就是投影下来的点,然后,你就能拿到投影向量了:

 

核心代码:

        Ray ray = new Ray(leftArm.transform.position, -n);  //指定原点和方向         bool touch = Physics.Raycast(ray, out hit); //进行碰撞检测 

当然,性能肯定是很糟糕的啦~

最新回复(0)