空间几何(点线面)知识整理
一、点、面问题
1.已知点和任意平面,求投影点坐标
1.1 问题描述
已知,点 P ( x 0 , y 0 , z 0 ) P(x_0 , y_0,z_0) P(x0,y0,z0) , 任意平面 Γ \Gamma Γ一般方程 : A x + B y + C z + D = 0 : Ax+By+Cz+D=0 :Ax+By+Cz+D=0 ,求:点 P P P在平面 Γ \Gamma Γ 上的投影点坐标 P ′ ( x 1 , y 1 , z 1 ) P'(x_1 , y_1,z_1) P′(x1,y1,z1)。
1.2 原理公式推导
因为投影点到已知点与平面垂直,根据垂直约束条件,易知
y 1 = B ( x 1 − x 0 ) A + y 0 y_1=\frac{B(x_1-x_0)}{A}+y_0 y1=AB(x1−x0)+y0
z 1 = C ( x 1 − x 0 ) A + z 0 z_1=\frac{C(x_1-x_0)}{A}+z_0 z1=AC(x1−x0)+z0
代入平面 Γ \Gamma Γ 一般方程,可以解得:
x 1 = ( B 2 + C 2 ) x 0 − A ( B y 0 + C z 0 + D ) A 2 + B 2 + C 2 x_1=\frac{(B^2+C^2)x_0-A(By_0+Cz_0+D)}{A^2+B^2+C^2} x1=A2+B2+C2(B2+C2)x0−A(By0+Cz0+D)
将上式代回垂直约束条件的两个公式可得:
y 1 = ( A 2 + C 2 ) y 0 − B ( A x 0 + C z 0 + D ) A 2 + B 2 + C 2 y_1=\frac{(A^2+C^2)y_0-B(Ax_0+Cz_0+D)}{A^2+B^2+C^2} y1=A2+B2+C2(A2+C2)y0−B(Ax0+Cz0+D)
z 1 = ( A 2 + B 2 ) z 0 − C ( A x 0 + B y 0 + D ) A 2 + B 2 + C 2 z_1=\frac{(A^2+B^2)z_0-C(Ax_0+By_0+D)}{A^2+B^2+C^2} z1=A2+B2+C2(A2+B2)z0−C(Ax0+By0+D)
由此解得空间三维点到平面的投影点坐标 P ′ ( x 1 , y 1 , z 1 ) P'(x_1 , y_1,z_1) P′(x1,y1,z1)。
1.3 代码实现
//拟合平面的系数 AX+BY+CZ+D=0; 其中A,B,C,是法向量
double A = coefficients->values[0];
double B = coefficients->values[1];
double C = coefficients->values[2];
double D = coefficients->values[3];//平面外一点 x0 y0 z0
double x0 = cloud->points[i].x;
double y0 = cloud->points[i].y;
double z0 = cloud->points[i].z;//平面上一点 x1 y1 z1
double x1 = ((B * B + C * C) * x0 - A * (B * y0 + C * z0 + D)) / (A * A + B * B + C * C);
double y1 = ((A * A + C * C) * y0 - B * (A * x0 + C * z0 + D)) / (A * A + B * B + C * C);
double z1 = ((A * A + B * B) * z0 - C * (A * x0 + B * y0 + D)) / (A * A + B * B + C * C);
二、点、线问题
1.已知点和任意直线(点法式),求投影点坐标
1.1 问题描述
已知,点 P ( x 0 , y 0 , z 0 ) P(x_0 , y_0,z_0) P(x0,y0,z0) , 任意直线 L 点法式方程 : x − a d = y − b e = z − c f :\frac{x-a}{d}=\frac{y-b}{e}=\frac{z-c}{f} :dx−a=ey−b=fz−c ,求:点 P P P在直线L 上的投影点坐标 P ′ ( x 1 , y 1 , z 1 ) P'(x_1 , y_1,z_1) P′(x1,y1,z1)。
1.2 原理公式推导
直线L的参数方程为:
t = x − a d = y − b e = z − c f t=\frac{x-a}{d}=\frac{y-b}{e}=\frac{z-c}{f} t=dx−a=ey−b=fz−c
投影点坐标 P ′ ( x 1 , y 1 , z 1 ) P'(x_1 , y_1,z_1) P′(x1,y1,z1)为:
x 1 = d t + a x_1=dt+a x1=dt+a
y 1 = e t + b y_1=et+b y1=et+b
z 1 = f t + c z_1=ft+c z1=ft+c
1.3 代码实现
2.已知点和任意直线(斜截式),求投影点坐标
2.1 问题描述
已知,点 P ( x 0 , y 0 , z 0 ) P(x_0 , y_0,z_0) P(x0,y0,z0) , 任意直线 L 点法式方程 : x − a d = y − b e = z − c f :\frac{x-a}{d}=\frac{y-b}{e}=\frac{z-c}{f} :dx−a=ey−b=fz−c ,求:点 P P P在直线L 上的投影点坐标 P ′ ( x 1 , y 1 , z 1 ) P'(x_1 , y_1,z_1) P′(x1,y1,z1)。
2.2 原理公式推导
直线L的参数方程为:
t = x − a d = y − b e = z − c f t=\frac{x-a}{d}=\frac{y-b}{e}=\frac{z-c}{f} t=dx−a=ey−b=fz−c
投影点坐标 P ′ ( x 1 , y 1 , z 1 ) P'(x_1 , y_1,z_1) P′(x1,y1,z1)为:
x 1 = d t + a x_1=dt+a x1=dt+a
y 1 = e t + b y_1=et+b y1=et+b
z 1 = f t + c z_1=ft+c z1=ft+c
2.3 代码实现
三、线、面问题
1.已知任意直线和任意平面,求交点坐标
1.1 问题描述
已知, 任意直线 L上一点 A ( x a , y a , z a ) A(x_a , y_a,z_a) A(xa,ya,za),其方向向量为 s ⃗ ( d , e , f ) \vec s (d , e,f) s (d,e,f) 。任意平面 Γ \Gamma Γ上的一点 B ( x b , y b , z b ) B(x_b , y_b,z_b) B(xb,yb,zb),其法向量为 n ⃗ ( i , j , k ) \vec n (i, j,k) n (i,j,k)求:直线 L在平面 Γ \Gamma Γ上的交点坐标 C ( x c , y c , z c ) C(x_c , y_c,z_c) C(xc,yc,zc)。
1.2 原理公式推导
参数 t 为:
t = ( x b − x a ) ∗ i + ( y b − y a ) ∗ j + ( z b − z a ) ∗ k i ∗ d + j ∗ e + k ∗ f t=\frac{(x_b-x_a)*i+(y_b-y_a)*j+(z_b-z_a)*k}{i * d + j*e +k*f} t=i∗d+j∗e+k∗f(xb−xa)∗i+(yb−ya)∗j+(zb−za)∗k
交点坐标 C ( x c , y c , z c ) C(x_c , y_c,z_c) C(xc,yc,zc)为:
x c = d t + x a x_c=dt+x_a xc=dt+xa
y c = e t + y b y_c=et+y_b yc=et+yb
z c = f t + z c z_c=ft+z_c zc=ft+zc
1.3 代码实现
//保证 (i* d+ j* e+ k* f) 不为 0 ,即直线与平面不平行,一定相交
if( (i* d+ j* e+ k* f) == 0 )
{
cout << "平面平行于直线,不存在交点" <<endl;
}double t = (( xb-xa )*i+(yb-ya)*j+(zb-za)*k)/(i* d+ j* e+ k* f);double xc=xa+dt;
double yc=ya+et;
double zc=za+ft;
//交点坐标 (x_c,y_c,z_c)
空间几何(点线面)知识整理相关推荐
- 考研:研究生考试(十五天学完)之《高等数学上/下册》研究生学霸重点知识点总结之考试内容各科占比及常考知识重点梳理(函数极限连续、一元/多元函数微分学/积分学、常微分函数、向量代数与空间几何、无穷级数)
考研:研究生考试(十五天学完)之<高等数学上/下册>研究生学霸重点知识点总结之考试内容各科占比及常考知识重点梳理(函数极限连续.一元/多元函数微分学/积分学.常微分函数.向量代数与空间几何 ...
- python常用变量名_python基础知识整理
Python Python开发 Python语言 python基础知识整理 序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充程序: 一 ...
- 计算机二级c语基础知识,计算机二级C语基础知识整理.doc
计算机二级C语基础知识整理 1.1 算法 算法:是一组有穷指令集,是解题方案的准确而完整的描述.通俗地说,算法就是计算机解题的过程.算法不等于程序,也不等于计算方法,程序的编制不可能优于算法的设计. ...
- centos7创建asm磁盘_Oracle ASM 磁盘组基础知识整理(收藏版)
为什么要写这么一篇基础知识呢?还是有那么一点点原因的,不是胡编乱造还真是有真实存在的事件的,前两周里因一套生产环境数据库磁盘不足无法对其进行表空间扩容,需要向存储岗申请存储资源,当存储岗划好资源加完存 ...
- 【转】医学影像处理相关知识整理(一)
转自:医学影像处理相关知识整理(一) - 知乎 Segmentation to RT structure 近日做医疗影像处理相关的内容,感慨于这方面资料不全.散碎,遂记录自己获得的一些资料以供日后查阅 ...
- 2019最新C语言知识整理小白进来看看??
说道C语言肯定很多学计算机的小伙伴都应该知道吧,不过很多小伙伴都很苦恼应该怎样学习C语言.所以小编做了一期C语言知识整理教程,仅提供给大家学习. C语言基本认识 看完小编这篇文章呢你就应该学会掌握: ...
- C语言最新知识整理(纯干货)
说道C语言肯定很多学计算机的小伙伴都应该知道吧,不过很多小伙伴都很苦恼应该怎样学习C语言.所以小编做了一期C语言知识整理教程,仅提供给大家学习. C语言基本认识 看完小编这篇文章呢你就应该学会掌握: ...
- JVM 面试知识整理
JVM 知识整理 JVM 类加载机制 加载(将文件加载到内存中) 验证(确保class文件的字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机自身的安全) 准备 (准备阶段是正式为类变量分配内 ...
- JTS Java空间几何计算、距离、最近点、subLine等计算
文章目录 前言 地理坐标系和投影坐标系 地理坐标系 投影坐标系 地图投影 墨卡托/Web墨卡托 常见坐标系 地理坐标系和投影坐标系互转 EPSG:3857和EPSG:4326 Java各坐标系之间的转 ...
- JTS Java空间几何计算、距离、最近点、subLine等 稳健的一比,持续更新中
文章目录 前言 地理坐标系和投影坐标系 地理坐标系 投影坐标系 地图投影 墨卡托/Web墨卡托 常见坐标系 地理坐标系和投影坐标系互转 EPSG:3857和EPSG:4326 Java各坐标系之间的转 ...
最新文章
- 【LC3开源峰会网络技术系列之三】基于JStorm的网络分析平台 1
- IDEA是否会嫌导jar包麻烦吗???赶快来学习maven吧,冲冲冲
- B表中的pid对应A表中id,查询A表中数据,根据b表中对应a表中该id的数据数目排序...
- hdu 5274(树链剖分)
- python字符串加减乘除_python 数字字符串加减乘除-女性时尚流行美容健康娱乐mv-ida网...
- Google Guava库必需品
- Redis 核心技术与实战
- Python 3 并发编程多进程之进程同步(锁)
- Linux nc命令详解
- SLAM 建立局部二维栅格地图的一种方法
- 谈谈疑似中介规则策略
- 变频器按启动没反应_变频器按运行键电动机不转故障怎样维修
- [笔记分享] [SD] 块设备驱动学习小结
- 阶段小练—篮球比赛计分器
- JavaScript基础 - 24 (数组方法:every、some、forEach、map、filter、reduce)
- 被智商检测器侮辱之后,我直接怒开PyCharm(下)
- 蓝汛之GPIO基本操作寄存器【篇】
- 计算机无法代替的工作有哪些,人工智能代替不了哪些行业?一起来看看!
- PAT 汉字表示的大写数字金额
- excel 某个单元格不是等于空值_Excel单元格为空怎么表示啊
热门文章
- 基于QT的游戏修改器
- 华为手机坏了数据怎么导出_苹果手机的语音备忘录怎么导出来?
- android 华为mate 获取定位权限,【严重安全问题】开启了定位权限,但是软件还是没权限...
- 文字生成视频,清华出品
- qlv是什么格式?要怎么把qlv格式转换成mp4视频
- 如何将图片格式转换为ico格式
- “要么增长要么死”,狼性文化正在毁掉什么?
- 字节入职福利太香了!7月最新Java面经已更新
- 二叉树的操作--递归与非递归
- Mac系统下MySQLWorkbench出现no connection established问题