求空间平面与直线的交点

问题重述与几何模型

已知P1(x1,y1,z1),P2(x2,y2,z2),平面α:ax+by+cz+d=0,求直线P1P2与平面α的交点P。

 

数学分析

存在性:直线与平面的交点可能有零个,一个,或无数个。 
可行性:已知直线上不重合两点,可以确定一条直线,已知直线与平面,则一定可以得到两者之间的关系。

向量法

当已知平面的一般式方程时(ax+by+cz+d=0),n⃗ =(a,b,c)就是平面的法矢量,也就能够很容易求出点到平面的距离和一个向量到法矢量的投影。由前面的几何模型,我们容易得出(根据相似三角形原理):

其中:

又点P1到D2的距离为

 

上面过程主要使用向量运算,巧妙避开了求模运算中的开方运算,减少了很多的运算量,而且,容易步骤化,易于编程实现。

 

Python代码实现:

 

import numpy as np

p1 = np.array([x1,y1,z1])#
p2 = np.array([x2,y2,z2])
plane_normal = np.array([a,b,c]) #a,b,c,d平面方程系数

P1D = (np.vdot(p1,plane_normal)+d)/np.sqrt(np.vdot(plane_normal,plane_normal))

P1D2 = (np.vdot(p2-P1,plane_normal))/np.sqrt(np.vdot(plane_normal,plane_normal))

n = P1D2/P1D

p = p1 + n*(p2- p1)#所求交点

 

原文链接:http://blog.csdn.net/smallflyingpig/article/details/51234711?locationNum=8&fps=1

 

转载于:https://www.cnblogs.com/qiu-hua/p/8001177.html

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值