空间直线与平面的交点
如果直线不与平面平行,将存在交点。如下图所示,已知直线L过点m(m1,m2,m3),且方向向量为VL(v1,v2,v3),平面P过点n(n1,n2,n3),且法线方向向量为VP(vp1,vp2,vp3),求得直线与平面的交点O的坐标(x,y,z):
将直线方程写成参数方程形式,即有:
x = m1+ v1 * t
y = m2+ v2 * t (1)
z = m3+ v3 * t
将平面方程写成点法式方程形式,即有:
vp1 * (x – n1) + vp2 * (y – n2) + vp3 * (z – n3) = 0 (2)
则直线与平面的交点一定满足式(1)和(2),联立两式,求得:
t = ((n1 – m1)*vp1+(n2 – m2)*vp2+(n3 – m3)*vp3) / (vp1* v1+ vp2* v2+ vp3* v3) (3)
如果(3)式中分母(vp1* v1+ vp2* v2+ vp3* v3)为0,则表示直线与平面平行,即直线与平面没有交点。求解出t后,然后将t代入式(1)即可求得交点O的坐标(x,y,z)。定义一个求直线与平面交点坐标的函数CalPlaneLineIntersectPoint(),其代码如下:
/// <summary>/// 求一条直线与平面的交点/// </summary>/// <param name="planeVector">平面的法线向量,长度为3</param>/// <param name="planePoint">平面经过的一点坐标,长度为3</param>/// <param name="lineVector">直线的方向向量,长度为3</param>/// <param name="linePoint">直线经过的一点坐标,长度为3</param>/// <returns>返回交点坐标,长度为3</returns>private float[] CalPlaneLineIntersectPoint(float[] planeVector, float[] planePoint, float[] lineVector, float[] linePoint){float[] returnResult = new float[3];float vp1, vp2, vp3, n1, n2, n3, v1, v2, v3, m1, m2, m3, t,vpt;vp1 = planeVector[0];vp2 = planeVector[1];vp3 = planeVector[2];n1 = planePoint[0];n2 = planePoint[1];n3 = planePoint[2];v1 = lineVector[0];v2 = lineVector[1];v3 = lineVector[2];m1 = linePoint[0];m2 = linePoint[1];m3 = linePoint[2];vpt = v1 * vp1 + v2 * vp2 + v3 * vp3;//首先判断直线是否与平面平行if (vpt == 0){returnResult = null;}else{t = ((n1 - m1) * vp1 + (n2 - m2) * vp2 + (n3 - m3) * vp3) / vpt;returnResult[0] = m1 + v1 * t;returnResult[1] = m2 + v2 * t;returnResult[2] = m3 + v3 * t;}return returnResult;}
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
空间直线与平面的交点相关推荐
- 求解直线与平面的交点
求解直线与平面的交点 微信公众号:幼儿园的学霸 目录 文章目录 求解直线与平面的交点 目录 前言 数学模型推导 编程实现 参考资料 前言 直线与平面的交点求解相关的内容在网上已经有很多资料进行介绍,目 ...
- Unity求一条直线与平面的交点
这个是面试官经常考的一个问题,我们先把它变成一个数学问题. 已知一个平面上的一点P0和法向量n,一条直线上的点L0和方向L,求该直线与该平面的交点P 如下图 首先我们分析一下我们知道平面和直线的法向量 ...
- Revit求直线与平面的交点
直线与平面的交点有两种情况,交点在平面内或平面外,计算出交点后需确定此交点是否在已知平面内. 代码如下: /// <summary> /// 计算直线与平面的交点 /// </sum ...
- 计算直线与平面的交点
设直线上一点 p,以及其方向 dir 则直线公式可写作 p+t*dir 设平面法向量为nml,平面上一点 p0 方法一: 直线与平面相交时,必满足 dot ( (p+t*dir-p0),nml)=0 ...
- 如何求直线与平面的交点(两种方式)
一:代数方式 我们假设它们的交点为P,既然我们有一个平面,那么平面上面的一个点P0和平面的normal(垂直于平面的向量)我们是肯定知道的. 根据3D数学知识,(P-P0) · normal = 0( ...
- pcl::lineToLineSegment() 计算空间直线的交点和最小公垂线
对于两空间直线来说,计算交点和最小公垂线是一码事,交点即最小公垂线两个垂足的中心.PCL中源码中包含计算空间直线最小公垂线的函数 PCL_EXPORTS void pcl::lineToLineSeg ...
- ad走线画直线_作为立体几何的热点,直线与平面的平行关系,到处都是考试的影子...
在高考数学里,空间直线与平面的平行有关的知识内容和题型,一直是近几年高考命题的热点,成为立体几何重要的基础考点.如何巧妙快速的判定空间直线与平面平行位置关系,如何在平面内寻找一条直线,探索该直线与平面 ...
- 空间直线和三维物体之间的交线相关问题
1.如何求空间直线在某一平面上的投影直线方程 https://zhidao.baidu.com/question/631349383625570644.html 2. 知道平面一点和平面法向量如何求平 ...
- 0804空间直线及其方程-向量代数与空间解析几何
文章目录 1 空间直线方程 1.1 空间直线的一般方程 1.2 空间直线的对称式方程 1.3 空间直线的参数方程 1.4 空间直线的两点式方程 3 两直线的夹角 4 直线与平面的夹角 4.1 定义 4 ...
- 两平面平行但不重合的条件是_____黑龙江省大庆外国语学校高中数学_第二章《2.2_直线、平面平行的判定及其性质》单元测试5_新人教A版必修3...
黑龙江省大庆外国语学校高一数学必修二第二章<2.2 直线.平面平 行的判定及其性质>单元测试5 一.选择题1.若两个平面互相平行,则分别在这两个平行平面内的直线( ) A.平行 B.异面 ...
最新文章
- css的repaint和reflow
- 【Struts2+Spring3+Hibernate3】SSH框架整合实现CRUD_1.0
- 全球及中国水产加工市场消费潜力分析与投资规模建议报告2022版
- Webstorm出现NoGitBinary时配置Git环境变量
- maven生成jar,运行却提示没有“没有主清单属性”
- 链路层的网卡聚合-基于Linux bonding
- hadoop fs:du统计hdfs文件(目录下文件)大小的用法
- java版电子商务spring cloud分布式微服务b2b2c社交电商(一)服务的注册与发现(Eureka)...
- 史上最污技术解读,让你秒懂IT术语
- VSCode批量代码比较
- 【jpype】pycharm中配置jpype
- DOS原理和常用命令详解示例
- Jquery实现确定取消对话框
- 开源硬件的舞者--WIZnet
- java小游戏超级玛丽:07.第三关的设计
- 为什么有必要开发一个APP?
- 初探自动化测试(爬虫)框架nightmarenightwatch
- 联想机架式服务器安装文档,联想智能超算平台LiCO安装手册.docx
- 315品牌危机公关2021年最新完全指南,公关人看完神清气爽!
- nginx 源码编译、安装