利用python通过两点构成的空间直线和平面计算交点
Coordinate.calCoordinateFrom2PointsAndPlane()函数说明
一、功能
该函数用于计算空间直线与空间平面的交点坐标。
二、计算原理
空间直线与平面交点示意如下图所示:
利用空间直线上任意两点求得其方向向量:
LineVector=(x1−x2,y1−y2,z1−z2)=(m,n,p)LineVector=(x_1-x_2,y_1-y_2,z_1-z_2)=(m,n,p) LineVector=(x1−x2,y1−y2,z1−z2)=(m,n,p)
根据丘维声所著《解析几何(第三版)》第60-61页可将空间直线方程表示为“点向式”方程:
x−x1m=y−y1n=z−z1p\frac{x-x_1}{m}=\frac{y-y_1}{n}=\frac{z-z_1}{p} mx−x1=ny−y1=pz−z1
利用中间参数可将上式表示为:
{x=mt+x1y=nt+y1z=pt+z1\left\{ \begin{array}{c} x=mt+x_1\\ y=nt+y_1\\ z=pt+z_1 \end{array} \right. ⎩⎨⎧x=mt+x1y=nt+y1z=pt+z1
通过上式与平面方程联立可计算出中间参数为:
t=−ax1−by1−cz1−dam+bn+cpt=\frac{-ax_1-by_1-cz_1-d}{am+bn+cp} t=am+bn+cp−ax1−by1−cz1−d
利用计算出的中间参数反求直线与平面交点E(x,y,z)。至此,空间直线与平面交点坐标求解完毕。
三、使用
1、输入
根据上述函数计算原理可知,该函数的输入为空间直线上任意两点坐标与平面方程参数:
Input():{P1(x1,y1,z1)P2(x2,y2,z2)(a,b,c,d)∈ax+by+cz+d=0Input(): \left\{ \begin{array}{c} P_1(x_1,y_1,z_1)\\ P_2(x_2,y_2,z_2)\\ (a,b,c,d) \in ax+by+cz+d=0 \end{array} \right. Input():⎩⎨⎧P1(x1,y1,z1)P2(x2,y2,z2)(a,b,c,d)∈ax+by+cz+d=0
2、输出
根据上述函数计算流程可知,该函数的输出为空间直线与平面的交点:
Output:E(x,y,z)Output:E(x,y,z) Output:E(x,y,z)
3、调用示例
P1 = np.array([-670.13, 1477.30, -1576.88])
P2 = np.array([-761.34, 914.65, -1576.88])
PlaneParams = np.array([0.00000000e+00, 5.54216347e+05, 0.00000000e+00, -3.57990507e+08])print(calCoordinateFrom2PointsAndPlane(P1, P2, PlaneParams))
4、调用结果
[[ -804.90000912 645.93999967 -1576.88 ]]
开源算法库地址,qq交流群:873647617
利用python通过两点构成的空间直线和平面计算交点相关推荐
- python输入数组并计算_利用Python进行数据分析——Numpy基础:数组和矢量计算
利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...
- 求解直线与平面的交点
求解直线与平面的交点 微信公众号:幼儿园的学霸 目录 文章目录 求解直线与平面的交点 目录 前言 数学模型推导 编程实现 参考资料 前言 直线与平面的交点求解相关的内容在网上已经有很多资料进行介绍,目 ...
- Unity求一条直线与平面的交点
这个是面试官经常考的一个问题,我们先把它变成一个数学问题. 已知一个平面上的一点P0和法向量n,一条直线上的点L0和方向L,求该直线与该平面的交点P 如下图 首先我们分析一下我们知道平面和直线的法向量 ...
- Revit求直线与平面的交点
直线与平面的交点有两种情况,交点在平面内或平面外,计算出交点后需确定此交点是否在已知平面内. 代码如下: /// <summary> /// 计算直线与平面的交点 /// </sum ...
- 《利用Python进行数据分析》笔记--NumPy数组和矢量计算
阅读SeanCheney博主上传的文章有感,特此写一篇笔记,如侵必删. 第四章 NumPy基础 NumPy的ndarray:一种多维数组对象 1. 创建ndarray array函数,接受序列性的对象 ...
- 计算直线与平面的交点
设直线上一点 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 ...
- 空间直线和三维物体之间的交线相关问题
1.如何求空间直线在某一平面上的投影直线方程 https://zhidao.baidu.com/question/631349383625570644.html 2. 知道平面一点和平面法向量如何求平 ...
- 0804空间直线及其方程-向量代数与空间解析几何
文章目录 1 空间直线方程 1.1 空间直线的一般方程 1.2 空间直线的对称式方程 1.3 空间直线的参数方程 1.4 空间直线的两点式方程 3 两直线的夹角 4 直线与平面的夹角 4.1 定义 4 ...
最新文章
- python urllib.request 爬虫 数据处理-python爬虫1--urllib请求库之request模块
- 蓝牙stack bluez学习(1)Stack Architecture
- 六、jQuery基础
- 高考与机器学习训练测试
- HBase删除和修改操作
- android mdpi对应哪一个屏幕,android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配...
- shell 脚本加密
- 将 ASP.NET Core 2.1 升级到最新的长期支持版本ASP.NET Core 3.1
- 【leetcode】length of last word (easy)
- css入门自学笔记1
- 【房价预测】基于matlab Elman神经网络房价预测【含Matlab源码 589期】
- Cisco交换机设备配置镜像端口
- matlab与maple互联,编程语言与Maple联合使用教程
- 监狱视频探视(会见)系统
- 计算机无法为u盘保存所有数据,U盘不能写入数据怎么办
- 扫雷小游戏(可选择简单、一般、困难三种模式、可展开,可标记)
- echarts xAxis字显示不全
- 保护环境倡议书500字
- 下载微信视频号视频的憨批方法
- 理解JavaScript中的原型与原型链
热门文章
- 华为路由器eNSP的基本配置
- 上海万应云——大数据精准招商系统
- MyBatis - 使用@Param注解解决mybatis方法传入多参数时的报错问题
- cesium 计算两点之间的距离
- win 2008无法远程桌面服务器,Windows 2008远程桌面无法连接的几个情况分析
- win10c盘android,Win10系统C盘哪些文件可以删除?C盘无用文件都在哪?
- 拟物设计和Angular的实现 - Material Design
- 谷歌地图kml能透明吗_如何打开KML和KMZ文件并与卫星影像叠加
- python可视化数据分析交互作用_测试设计功能交互分析
- 3D建模场景怎么做?