计算两个面的交线

  空间中两个平面要么相交要么平行,相交平面得到的是一条直线。

  根据之前的博文有讲述,空间中不共线三点确定一个平面。那么已知两个平面,且两平面相交,应该如何去计算两平面之间的交线呢?

  思路分析:如果两平面相交,获得一条直线,那么该直线就同时属于两个平面。那么该直线会同时垂直于两个平面的法线。那么两个平面的法向量的外积,就可以计算出交线的方向。这时候还需要计算交线上一点才能表示该直线。要计算交线上一点,就需要构造另一条直线,使得该直线在两个已知平面中的一个平面内,并且与另一个平面有交点,该交点就是交线上的点。而目前能够得到的已知量就是表示平面的六个点(这六个点可能会有相等的点,但是如果能表示平面,不会六个点都相等),交线方向向量,两个平面的法向量。可以取六个点中的一个点,作平行于交线的直线,结合该点所在平面的法向量得到第二条直线,根据向量外积,计算得到一个垂直于交线的向量,结合该点和该向量可以得到一条垂直于交线的直线,并且该直线交于另一个平面,求出该直线与平面的交点,该交点就是交线上的点,交线上的点和交线方向向量就可以确定交线了。

  推导过程:

假设两平面 P1,P2 P 1 , P 2 P_1,P_2相交于直线 l0 l 0 l_0
平面法向量分别为 n1→,n2→ n 1 → , n 2 → \vec{n_1},\vec{n_2}
则有 l0⊥n1→,l0⊥n2→ l 0 ⊥ n 1 → , l 0 ⊥ n 2 → l_0\bot\vec{n_1},l_0\bot\vec{n_2}
由 P1 P 1 P_1中已知一点P出发向 l0 l 0 l_0作垂线得直线 l1 l 1 l_1
则 l1⊥l0→,l1⊥n1→ l 1 ⊥ l 0 → , l 1 ⊥ n 1 → l_1\bot\vec{l_0} , l_1\bot\vec{n_1}
则 l1 l 1 l_1的方向向量 Dirl1→=Dirl0→×n1→ D i r l 1 → = D i r l 0 → × n 1 → \vec{Dir_{l_1}} = \vec{Dir_{l_0}} \times \vec{n_1}
则直线 l1=P+tDirl1→ l 1 = P + t D i r l 1 → l_1 = P + t\vec{Dir_{l_1}}
计算直线l_1与平面P_2的交点R
直线 l0=R+tDirl0→ l 0 = R + t D i r l 0 → l_0 = R + t\vec{Dir_{l_0}}

【寒江雪】计算两个面的交线相关推荐

  1. matlab画直交圆柱面,两个直交圆柱面的交线

    this.p={ m:2, b:2, loftPermalink:'', id:'fks_082069080083082065087082080095086083080064085095087069' ...

  2. PCL点云处理之计算两平面交线(五十一)

    PCL点云处理之计算两平面交线(五十一) 前言 一.算法说明 二.实验代码: 前言 计算三维空间中,两个平面的交线 一.算法说明 已知: 1号平面的方程为A1x+B1y+C1z+D1=0 2号平面的方 ...

  3. java如何计算时间天数差,java计算两个时间相差天数的方法汇总

    问题描述: 输入:两个日期 输出:两个日期相差的天数 具体代码实现 方法1: 通过calendar类的日期比较.注意:这里需要考虑一下: 日期是跨年份的,如一个是2012年,一个是2015年的 年份是 ...

  4. javascript 计算两个坐标的距离 米_土方全面应用计算

    各种土方量的计算方法汇总 8.2.1  DTM法土方计算 由DTM模型来计算土方量是根据实地测定的地面点坐标(X,Y,Z)和设计高程,通过生成三角网来计算每一个三棱锥的填挖方量,最后累计得到指定范围内 ...

  5. java中算两个时间内的秒数_java – Joda Time – 计算两个日期之间的秒数会引发异常....

    我使用以下代码来计算两个日期之间的秒数差异: long secondsBetween = (Seconds.secondsBetween(new LocalDate("1901-01-01& ...

  6. java 日期只计算年月日大小_Java按自然月计算两个日期相差的年月日?

    曾经我以为计算两个日期之差很简单,在给我的团队成员分配任务时,也觉得就是调用一个方法的问题,可是当我发现结果老是不对时,才发现原来JDK 提供的API中根本没有这样的方法,我也很恼火,也怪不得不少牛人 ...

  7. 计算两个日期相差的天数,Calendar用法

    2019独角兽企业重金招聘Python工程师标准>>> /** * 计算两个日期之间相差的天数 * @param date1 * @param date2 * @return */ ...

  8. javaScript 计算两个日期的天数相差~~~

    一:计算两个日期相差的天数 比如:    str1  =  "2002-01-20"    str2  =  "2002-10-11"   怎样用javaScr ...

  9. 计算两个日期的时间间隔 python

    python中通过datetime模块可以很方便的计算两个时间的差,datetime的时间差单位可以是天.小时.秒,甚至是微秒,这个确实很方便 字符类型的时间 import datetime day1 ...

最新文章

  1. c语言按行存储数据库,C语言实现按行读写文件
  2. 外设位宽为8、16、32时,CPU与外设之间地址线的连接方法
  3. Js Vue 对象数组的创建方式
  4. Python《多线程并发爬虫》
  5. 【王道计组笔记】储存系统(2):主存简单模型及寻址的概念
  6. ZeroClipboard实现复制
  7. Linux 常用命令十四 killall和pkill
  8. linux远程ssh的端口映射,SSH端口映射
  9. 使用计算机眼睛保护方法有哪些,​计算机族的“护眼诀窍”
  10. python猜字游戏算法设计_Python 制作一个猜字游戏
  11. 小鸟云服务器如何安装rstudio-server?
  12. 百度网盘不开通会员5M/S下载方法
  13. screen和scp
  14. 「CF1463A」暗黑地牢
  15. mel滤波matlab,MFCC(Mel Frequency Cepstral Coefficient)提取过程详解
  16. react将表格动态生成视频列表【代码】【案例】
  17. 绝对值编码器单圈和多圈的区别
  18. 在html 中插入优酷视频
  19. MATLAB应用实战系列(七十一)-MATLAB实战应用案例:图像处理将灰度图片变成负片彩色图片转换成灰度图片
  20. 留学生朋友问我有没有学过《数值分析》

热门文章

  1. IC基础知识:时钟无毛刺切换
  2. Eclipse如何导入Maven项目
  3. 符合python命名规范的标识符是什么_Python标识符命名规范
  4. C++PTA习题总结(二)
  5. Nginx web服务
  6. c语言选择结构的语句有,选择结构
  7. JAVA中一维数组的简单使用!
  8. Jquery自执行函数与普通自执行函数的区别
  9. APIO20152014题解
  10. FME入门视频教程-带你学习一款功能强大数据转换处理软件的使用,让我们的工作事半功倍