记录几何计算知识

关于求点到面的距离

 本方法有前提,已知点M(x_0,y_0,z_0)和已知面(Ax + By + Cz + D = 0)的表达式

1、首先通过三个点计算出两个向量N1, N2 ;
 N1 =(C-A), N2 = (B-A);
2、计算两个向量的叉乘结果,以拿到法向量

 叉乘的几何意义:
 设 c = a × b
 则c的方向垂直于a与b所决定的平面,c的指向按右手定则从a转向b来确定。
 且c的长度在数值上等于以a,b,夹角为θ组成的平行四边形的面积。
 ∣c∣=∣a∣∣b∣⋅sinθ

 叉乘的算法:这里的vector是Vector3的形式,也就是三个数,x,y,z。

      (Vector1.y * Vector2.z - Vector1.z * Vector2.y,
        Vector1.z * Vector2.x - Vector1.x * Vector2.z,
        Vector1.x * Vector2.y - Vector1.y * Vector2.x);

3、法向量归一化

Vector3 rVec;
double normalise()
{
	//首先计算长度
	double dLength = sqrt(rVec 点乘 rVec);
	if(dLength > 0,0)
	{
		double dInvLength = 1.0 / dLength;
		for(int i = 0; i < 3; ++i)
		{
			rVec[i] *= dInvLength;
		}
	}
	return dLength;
}

4、开始求距离
归一化其实是优化去下面的公式的部分,可以完全按照公式做,而不需要第三步
在这里插入图片描述
如果法向量是单位向量,则分母为1.

点相对于某个面的镜像位置

已知点M(x_0,y_0,z_0)和距离之后,根据右手定则,直接M点加或者减两倍的距离就可以了。

证明平面方程的前三个系数是法向量

变换方程为一般式Ax+By+Cz+D=0,平面的法向量为(A,B,C)。

证明:设平面上任意两点P(x1,y1,z1)Q(x2,y2,z2)

∴ 满足方程:Ax1+By1+Cz1+D=0,Ax2+By2+Cz2+D=0

∴ PQ的矢量为(x2-x1,y2-y1,z2-z1),该矢量满足A(x2-x1)+B(y2-y1)+C(z2-z1)=0

∴ 矢量PQ⊥矢量(A,B,C)

∴ 平面上任意直线都垂直于矢量(A,B,C)

∴ 矢量(A,B,C)垂直于该平面

∴ 平面的法向量为(A,B,C)

求垂足的推导过程

https://blog.csdn.net/weixin_42165981/article/details/100547144

已知点P(a,b,c),计算点P到面Ax + By + Cz + D = 0的垂足,也就是点P在平面上的投影M(x0,y0,z0).
方法1:
显然点P和点M组成的直线l1和平面的法向量平行,则向量(A,B,C)(平面的法向量)是直线的方向向量。所以已知直线上一点和直线的方向向量,所以已知直线上一点和直线的方向向量,l1的参数方程:
(x -a)/A = (y - b)/B = (z - c)/C = t;
所以
x = At + a;
y = Bt + b;
z = Ct + c;
将x,y,z代入到平面方程
Ax+By+Cz+D
= A∗(At+a)+B∗(Bt+b)+C∗(Ct+c)+D
= A^2t+Aa+B^2t+Bb+C^2t+Cc+D
= (A^2+B^2+C^2)t+Aa+Bb+Cc+D

所以(A^2+B^2+C^2)t+Aa+Bb+Cc+D = 0;
所以t = -(Aa+Bb+Cc+D)/(A^2+B^2+C^2).

从而求出来投影点
x0 = (-A(Aa+Bb+Cc+D) + a(A^2+B^2+C^2))/(A^2+B^2+C^2)
y0 = (-B(Aa+Bb+Cc+D) + b(A^2+B^2+C^2))/(A^2+B^2+C^2)
z0 = (-C(Aa+Bb+Cc+D) + c(A^2+B^2+C^2))/(A^2+B^2+C^2)
### 回答1: 点到平面距离是指从点到平面上的最短距离。在三维空间中,可以通过以下公式来求解点P(x,y,z)到平面Ax+By+Cz+D=0的距离: d = |Ax + By + Cz + D| / √(A² + B² + C²) 其中,“| |”表示绝对值符号,“√”表示平方根符号。 具体来说,首先需要求出平面的法向量N(A,B,C),然后用点P到平面上任意一点Q的向量PQ与法向量N的点积作为分子,再求出N的模长作为分母即可。 需要注意的是,如果点P在平面上,则点到平面距离为0;如果法向量N为零向量,则平面不存在,无法计算点到平面距离。此外,如果平面方程不是标准式,比如写成一般式或点法式,需要先转化为标准式才能应用上述公式。 ### 回答2: 点到平面距离是指从该点向垂直于平面的方向所作的线段的长度,这一长度可以用向量的内积和模长求得。 假设点的坐标为P(x1,y1,z1),平面的方程为Ax+By+Cz+D = 0。首先,将平面的方程变形为法向量N=(A, B, C)和点O(任意一点,假设坐标为(x0,y0,z0))的内积形式,如下所示: N·(P-O) + D = 0 其中·表示向量的内积。 那么点P到平面的距离h可以表示为: h = |N·(P-O)| / |N| 其中|N|表示向量N的长度。因此,我们只需要求得向量N的长度和向量N·(P-O)的长度,就可以求得点P到平面的距离h。 具体计算过程如下: 1. 求向量N的长度 |N| = sqrt(A^2 + B^2 + C^2) 2. 求向量N·(P-O)的长度 N·(P-O) = N·P - N·O = Ax1 + By1 + Cz1 - (Ax0 + By0 + Cz0) 3. 由上述公式计算点P到平面的距离h h = |N·(P-O)| / |N| 需要注意的是,当向量N为单位向量时,上式中的分母|N|可以省略,计算起来会更加简便。 以上就是求点到平面距离计算方法。这一方法可以用于各种情况下,比如在三维空间中研究点和平面的关系,求解问题时可以根据具体需要灵活应用。 ### 回答3: 首先,我们需要明确点和平面的概念。 点是几何中没有大小、无限小的一个对象,在空间中被表示为一组坐标。 平面是指没有厚度的无限大平面,可以用两个垂直的轴表示,在三维空间中是一个二维的图形。 点和平面之间的距离,指的是点到平面上最近的距离计算点到平面距离的方法如下: 假设点的坐标为P(x1,y1,z1),平面的方程为Ax+By+Cz+D=0。 - 求出平面内一点Q的坐标:假设平面上垂直于z轴的直线与该平面的交点为Q,则Q的坐标为(x1,y1,-(A*x1+B*y1+D)/C)。 - 求出向量PQ:向量PQ的坐标为(PQx,PQy,PQz),其中PQx=x1-x2、PQy=y1-y2、PQz=z1-z2。 - 求出平面的法向量:平面的法向量为N(A,B,C)。 - 计算点到平面距离点到平面距离为其在法向量方向上的分量,即点到平面距离d=|PQ·N|/|N|。 其中,|PQ·N|表示向量PQ与平面法向量N的点积,|N|表示平面法向量N的模长。 举个例子,在三维空间中,点P(2,3,4)到平面2x+3y+4z-5=0的距离该如何求解呢? 首先,按照上述方法,求出平面内一点Q的坐标:Q(x1,y1,z1)= (2,3,(5-2*2-3*3)/4) = (2,3,-1/2)。 然后,求出向量PQ: PQ=(PQx,PQy,PQz)=(2-2,3-3,4-(-1/2))=(0,0,9/2)。 接着,计算平面的法向量N=(2,3,4)。 最后,根据上述公式,求得点P到平面的距离:d=|PQ·N|/|N|=|(0,0,9/2)·(2,3,4)|/sqrt(2^2+3^2+4^2)=9/sqrt(29/2)≈5.212。因此,点P到平面2x+3y+4z-5=0的距离为约5.212。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值