如果直线不与平面平行,将存在交点。如下图所示,已知直线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

空间直线与平面的交点相关推荐

  1. 求解直线与平面的交点

    求解直线与平面的交点 微信公众号:幼儿园的学霸 目录 文章目录 求解直线与平面的交点 目录 前言 数学模型推导 编程实现 参考资料 前言 直线与平面的交点求解相关的内容在网上已经有很多资料进行介绍,目 ...

  2. Unity求一条直线与平面的交点

    这个是面试官经常考的一个问题,我们先把它变成一个数学问题. 已知一个平面上的一点P0和法向量n,一条直线上的点L0和方向L,求该直线与该平面的交点P 如下图 首先我们分析一下我们知道平面和直线的法向量 ...

  3. Revit求直线与平面的交点

    直线与平面的交点有两种情况,交点在平面内或平面外,计算出交点后需确定此交点是否在已知平面内. 代码如下: /// <summary> /// 计算直线与平面的交点 /// </sum ...

  4. 计算直线与平面的交点

    设直线上一点 p,以及其方向 dir 则直线公式可写作  p+t*dir 设平面法向量为nml,平面上一点 p0 方法一: 直线与平面相交时,必满足 dot ( (p+t*dir-p0),nml)=0 ...

  5. 如何求直线与平面的交点(两种方式)

    一:代数方式 我们假设它们的交点为P,既然我们有一个平面,那么平面上面的一个点P0和平面的normal(垂直于平面的向量)我们是肯定知道的. 根据3D数学知识,(P-P0) · normal = 0( ...

  6. pcl::lineToLineSegment() 计算空间直线的交点和最小公垂线

    对于两空间直线来说,计算交点和最小公垂线是一码事,交点即最小公垂线两个垂足的中心.PCL中源码中包含计算空间直线最小公垂线的函数 PCL_EXPORTS void pcl::lineToLineSeg ...

  7. ad走线画直线_作为立体几何的热点,直线与平面的平行关系,到处都是考试的影子...

    在高考数学里,空间直线与平面的平行有关的知识内容和题型,一直是近几年高考命题的热点,成为立体几何重要的基础考点.如何巧妙快速的判定空间直线与平面平行位置关系,如何在平面内寻找一条直线,探索该直线与平面 ...

  8. 空间直线和三维物体之间的交线相关问题

    1.如何求空间直线在某一平面上的投影直线方程 https://zhidao.baidu.com/question/631349383625570644.html 2. 知道平面一点和平面法向量如何求平 ...

  9. 0804空间直线及其方程-向量代数与空间解析几何

    文章目录 1 空间直线方程 1.1 空间直线的一般方程 1.2 空间直线的对称式方程 1.3 空间直线的参数方程 1.4 空间直线的两点式方程 3 两直线的夹角 4 直线与平面的夹角 4.1 定义 4 ...

  10. 两平面平行但不重合的条件是_____黑龙江省大庆外国语学校高中数学_第二章《2.2_直线、平面平行的判定及其性质》单元测试5_新人教A版必修3...

    黑龙江省大庆外国语学校高一数学必修二第二章<2.2 直线.平面平 行的判定及其性质>单元测试5 一.选择题1.若两个平面互相平行,则分别在这两个平行平面内的直线( ) A.平行 B.异面 ...

最新文章

  1. css的repaint和reflow
  2. 【Struts2+Spring3+Hibernate3】SSH框架整合实现CRUD_1.0
  3. 全球及中国水产加工市场消费潜力分析与投资规模建议报告2022版
  4. Webstorm出现NoGitBinary时配置Git环境变量
  5. maven生成jar,运行却提示没有“没有主清单属性”
  6. 链路层的网卡聚合-基于Linux bonding
  7. hadoop fs:du统计hdfs文件(目录下文件)大小的用法
  8. java版电子商务spring cloud分布式微服务b2b2c社交电商(一)服务的注册与发现(Eureka)...
  9. 史上最污技术解读,让你秒懂IT术语
  10. VSCode批量代码比较
  11. 【jpype】pycharm中配置jpype
  12. DOS原理和常用命令详解示例
  13. Jquery实现确定取消对话框
  14. 开源硬件的舞者--WIZnet
  15. java小游戏超级玛丽:07.第三关的设计
  16. 为什么有必要开发一个APP?
  17. 初探自动化测试(爬虫)框架nightmarenightwatch
  18. 联想机架式服务器安装文档,联想智能超算平台LiCO安装手册.docx
  19. 315品牌危机公关2021年最新完全指南,公关人看完神清气爽!
  20. nginx 源码编译、安装

热门文章

  1. 十行python代码定时给微信好友发送晚安,自动应答--python云舔狗
  2. Radius认证有线与无线网络(一)
  3. EasyExcel导出文件格式不匹配
  4. arXiv 注册完整过程(图文详解)
  5. win10修改C盘Users底下的账号名字
  6. MSE 支持 Apache Shenyu 网关实现全链路灰度
  7. Stata: 图示交互效应\调节效应
  8. Multisim仿真:验证性实验-单管共射放大电路
  9. MySQL理解索引、添加索引的原则
  10. 20 分钟教你量化自己的资产