计算空间点到平面的投影点坐标(代码)
来源:互联网 发布:打折邮票淘宝推荐店铺 编辑:程序博客网 时间:2024/06/04 21:38
1、pp为所求的投影点坐标;
2、A为平面上任意已知点;
3、n为平面上的法线;
n的计算方法:
一般会已知平面上两个以上的点坐标,例如我是为了求点在任意三角形上的投影点,我当然会
知道三角形的三个点坐标,通过其中两个点坐标可以求出法向量n。
假设已知平面为三角形,其三个顶点分别为A(x,y,z),B(x,y,z), C(x,y,z).
AB = (Bx-Ax,By-Ay,Bz-Az);AB为向量;
AC = (Cx-Ax,Cy-Ay,Cz-Az);AC为向量;
n为法向量
n = AB X AC
=>nx = ABy*ACz-ABz*ACy
ny = ABz*ACx-ABx*ACz
nz = ABx*ACy-ABy*ACx
注意:以上的Ax是A的x坐标;
ABx指的是AB向量的x分量
下面是我算出的现成求法,由于计算太费时间,而且容易出错,就给大伙分享出来啦
希望能帮到大伙~
代码1:
pp.x = (n.x*n.y*A.y + n.y*n.y*p.x - n.x*n.y*p.y + n.x*n.z*A.z + n.z*n.z*p.x - \
n.x*n.z*p.z + n.x*n.x*A.x) / (n.x*n.x + n.y*n.y + n.z*n.z);
pp.y = (n.y*n.z*A.z + n.z*n.z*p.y - n.y*n.z*p.z + n.y*n.x*A.x + n.x*n.x*p.y - \
n.x*n.y*p.x + n.y*n.y*A.y) / (n.x*n.x + n.y*n.y + n.z*n.z);
pp.z = (n.x*A.x*n.z + n.x*n.x*p.z - n.x*p.x*n.z + n.y*A.y*n.z + n.y*n.y*p.z - \
n.y*p.y*n.z + n.z*n.z*A.z) / (n.x*n.x + n.y*n.y + n.z*n.z);
阅读全文
0 0
- 计算空间点到平面的投影点坐标(代码)
- 计算空间点到平面的投影点坐标
- 空间点到平面的垂足坐标的计算方法
- 点到点法式平面投影点的计算
- 计算两平面坐标点的距离
- [计算几何]平面空间点旋转坐标变换
- 点到平面的投影算法备忘笔记
- 点到平面的投影算法备忘笔记
- 点到平面的距离计算
- pcl 点投影到某个平面
- 设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
- RTH(Randomized Hough Transform)中计算p1,p2,p3三个点确定的平面在参数空间的坐标
- 一个点沿着某个方向投影到一个平面上的另一个点的矩阵
- Direct3D中投影空间内的点坐标与屏幕上点的对应关系
- Direct3D中投影空间内的点坐标与屏幕上点的对应关系
- 计算点到直线的垂点坐标
- 用OpenGL实现三维点到屏幕空间的投影
- 求平面点坐标
- Could not autowire. No beans of 'xxxx' type found
- <划重点的Unity2017>Playable相关
- HDFS客户端的权限错误:Permission denied
- npm is known not to run on Node.js vue启动报错
- Linux学习-1
- 计算空间点到平面的投影点坐标(代码)
- 利用xshell上传文件到linux
- 每日英语阅读(六十七)
- jQuery简单练习(1)
- 计算机存储单位 学习,记录
- JS组件系列——Bootstrap文件上传组件:bootstrap fileinput
- Neutron中的dhcp过程分析
- sublime常用快捷键
- BZOJ1055 [HAOI2008]玩具取名