【寒江雪】计算两个面的交线
计算两个面的交线
空间中两个平面要么相交要么平行,相交平面得到的是一条直线。
根据之前的博文有讲述,空间中不共线三点确定一个平面。那么已知两个平面,且两平面相交,应该如何去计算两平面之间的交线呢?
思路分析:如果两平面相交,获得一条直线,那么该直线就同时属于两个平面。那么该直线会同时垂直于两个平面的法线。那么两个平面的法向量的外积,就可以计算出交线的方向。这时候还需要计算交线上一点才能表示该直线。要计算交线上一点,就需要构造另一条直线,使得该直线在两个已知平面中的一个平面内,并且与另一个平面有交点,该交点就是交线上的点。而目前能够得到的已知量就是表示平面的六个点(这六个点可能会有相等的点,但是如果能表示平面,不会六个点都相等),交线方向向量,两个平面的法向量。可以取六个点中的一个点,作平行于交线的直线,结合该点所在平面的法向量得到第二条直线,根据向量外积,计算得到一个垂直于交线的向量,结合该点和该向量可以得到一条垂直于交线的直线,并且该直线交于另一个平面,求出该直线与平面的交点,该交点就是交线上的点,交线上的点和交线方向向量就可以确定交线了。
推导过程:
假设两平面 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}}
【寒江雪】计算两个面的交线相关推荐
- matlab画直交圆柱面,两个直交圆柱面的交线
this.p={ m:2, b:2, loftPermalink:'', id:'fks_082069080083082065087082080095086083080064085095087069' ...
- PCL点云处理之计算两平面交线(五十一)
PCL点云处理之计算两平面交线(五十一) 前言 一.算法说明 二.实验代码: 前言 计算三维空间中,两个平面的交线 一.算法说明 已知: 1号平面的方程为A1x+B1y+C1z+D1=0 2号平面的方 ...
- java如何计算时间天数差,java计算两个时间相差天数的方法汇总
问题描述: 输入:两个日期 输出:两个日期相差的天数 具体代码实现 方法1: 通过calendar类的日期比较.注意:这里需要考虑一下: 日期是跨年份的,如一个是2012年,一个是2015年的 年份是 ...
- javascript 计算两个坐标的距离 米_土方全面应用计算
各种土方量的计算方法汇总 8.2.1 DTM法土方计算 由DTM模型来计算土方量是根据实地测定的地面点坐标(X,Y,Z)和设计高程,通过生成三角网来计算每一个三棱锥的填挖方量,最后累计得到指定范围内 ...
- java中算两个时间内的秒数_java – Joda Time – 计算两个日期之间的秒数会引发异常....
我使用以下代码来计算两个日期之间的秒数差异: long secondsBetween = (Seconds.secondsBetween(new LocalDate("1901-01-01& ...
- java 日期只计算年月日大小_Java按自然月计算两个日期相差的年月日?
曾经我以为计算两个日期之差很简单,在给我的团队成员分配任务时,也觉得就是调用一个方法的问题,可是当我发现结果老是不对时,才发现原来JDK 提供的API中根本没有这样的方法,我也很恼火,也怪不得不少牛人 ...
- 计算两个日期相差的天数,Calendar用法
2019独角兽企业重金招聘Python工程师标准>>> /** * 计算两个日期之间相差的天数 * @param date1 * @param date2 * @return */ ...
- javaScript 计算两个日期的天数相差~~~
一:计算两个日期相差的天数 比如: str1 = "2002-01-20" str2 = "2002-10-11" 怎样用javaScr ...
- 计算两个日期的时间间隔 python
python中通过datetime模块可以很方便的计算两个时间的差,datetime的时间差单位可以是天.小时.秒,甚至是微秒,这个确实很方便 字符类型的时间 import datetime day1 ...
最新文章
- c语言按行存储数据库,C语言实现按行读写文件
- 外设位宽为8、16、32时,CPU与外设之间地址线的连接方法
- Js Vue 对象数组的创建方式
- Python《多线程并发爬虫》
- 【王道计组笔记】储存系统(2):主存简单模型及寻址的概念
- ZeroClipboard实现复制
- Linux 常用命令十四 killall和pkill
- linux远程ssh的端口映射,SSH端口映射
- 使用计算机眼睛保护方法有哪些,​计算机族的“护眼诀窍”
- python猜字游戏算法设计_Python 制作一个猜字游戏
- 小鸟云服务器如何安装rstudio-server?
- 百度网盘不开通会员5M/S下载方法
- screen和scp
- 「CF1463A」暗黑地牢
- mel滤波matlab,MFCC(Mel Frequency Cepstral Coefficient)提取过程详解
- react将表格动态生成视频列表【代码】【案例】
- 绝对值编码器单圈和多圈的区别
- 在html 中插入优酷视频
- MATLAB应用实战系列(七十一)-MATLAB实战应用案例:图像处理将灰度图片变成负片彩色图片转换成灰度图片
- 留学生朋友问我有没有学过《数值分析》