在MATLAB中,已知一个点坐标和一个由三点组成的平面(这三点坐标已知),求这个点在这个平面上的投影坐标例如,已知点A,B,C,D,怎么求点D在平面ABC上的投影点坐标.还有一点:怎么把这些三维坐

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 08:34:25

在MATLAB中,已知一个点坐标和一个由三点组成的平面(这三点坐标已知),求这个点在这个平面上的投影坐标
例如,已知点A,B,C,D,怎么求点D在平面ABC上的投影点坐标.
还有一点:怎么把这些三维坐标换算成平面ABC上的二维坐标
这是想用在一个程序里的,希望高手作答,能用编程语言简单实现
有请高手现身!

You might want to review the linear algebra text book of freshman's course in most college.
First of all, let's make some vectors based on your given points:
b=B-A
c=C-A
d=D-A
, In other words, we simply let A be the original point. Vectors b, c, and d are connecting from A to B, to C, and to D, respectively. We are going to answer your questions based on these vectors.
To check if A, B, and C are not in a straight line, we simply need to check if vector b and c are independent. We use the rank of matrix with verctor b and c to determine:
r = rank([b c])
Here we assume b and c are column vectors. (If b and c are row vectors, r = rank([b;c]) in Matlab) Now, If r=2, vector b and c are independent, in other words, A, B and C are not in one straight line, they can determine a plane.
We assume b and c are independent now. We use the following steps to obtain a basis:
(1) take b as the first vector: v1 = b
(2) get the normal vector of the plane determined by b and c:
v3 = cross(b,c)
(3) get the third vector which is orthogonal to both v1 and v3:
v2 = cross(v3, v1)
*Note: v2 must be on the plane defined by b and c, or equavilently by A, B and C
(4) normalize v1, v2 and v3, we get:
e1 = v1 / norm(v1)
e2 = v2 / norm(v2)
e3 = v3 / norm(v3)
Then, e1, e2 and e3 form a basis of whole 3D spance.
To get the projection of D onto plane ABC, you can get the inner product of d and each vector of the basis :
p1 = dot(d,e1)
p2 = dot(d,e2)
p3 = dot(d,e3)
Then:
projectionOfDOntoABC = p1*e1+p2*e2+p3*e3
Finally, e1 and e2 form a basis of the plane ABC. You can use (p1,p2) as the coordinates with respect to the basis e1,e2 to refer a point on the plane.

在MATLAB中,已知一个点坐标和一个由三点组成的平面(这三点坐标已知),求这个点在这个平面上的投影坐标例如,已知点A,B,C,D,怎么求点D在平面ABC上的投影点坐标.还有一点:怎么把这些三维坐 利用matlab,在点云数据中,怎么取出一个圆形(已知圆心和半径)区域的点?, 已知一个点坐标和一个由三点组成的平面(这三点坐标已知),求这个点在这个平面上的投影坐标.我想咨询下,你的实现方法是怎样的?想学习学习. matlab 圆的拟合已知空间内十组坐标,十个点大致围成一个圆,怎样用matlab求圆心坐标和半径,可否把源代码给我?跪谢啊! matlab 画图 已知一个点的坐标和图形上一点 怎么画着两点的直线呢 matlab怎样在一个坐标里画多个图形 matlab 怎么自定义一个点(已知横坐标和纵坐标) 在空间直角坐标系中,已知一个点坐标和一个平面的方程怎样求这个点到这个平面的距离. matlab中怎么画浓度分布图?我现在的数据是:已知网格点处的坐标和24个小时的浓度(在txt文件里),想看看浓度分布的动态显示,就是从第一个小时到最后一个小时, matlab 圆的拟合已知空间内十组坐标,十个点大致围成一个圆,怎样用matlab求圆心坐标?源代码是什么?好吧,不求空间的了,算那十个点是在一个平面,该怎样求?matlab的源代码? 全站仪测量坐标,已知一个点为(0,0,0)和另一个点的坐标(10,0,0),如何测其他坐标.全站仪不能驾在这两个已知点上,只能放在其他的点上. matlab中生成voronoi图时,能否设定一个边界使得voronoi顶点不出现无穷远点?matlab中voronoin能得到所有的voronoi顶点的坐标,但这些坐标中含有inf的无穷点.能否设定一个边界使得无穷远点被约束在边 知道几个点的经纬度和海拔高度信息,计算一个未知点的经纬度和海拔高度信息.在普通的数学空间直角坐标系中,由几个点的坐标和接收到的未知点传播到的光的时间,可以算出未知点的坐标信 不用matlab自身的求和函数,怎样在matlab中建立一个a到b的求和函数的m文件,已知a和b都是整数, 怎样在matlab中建立一个a到b的求和函数文件,已知a和b都是整数 matlab 矩阵数据排列能否实现已知一个矩阵和一组下标数据,将矩阵中对应下标的数据取出并由小到大排列这样的功能? matlab 中已知一个分布的表达式(该分布是由正态分布和拉普拉斯分布合成的),如何得到服从该分布的随机数 matlab中 已知一个矩阵580*580 并且确定一个点 如何建立一个极坐标如题,矩阵中有一个圆,现在已经确定了圆心,现在想以这个圆心建立一个新的矩阵应该如何做,并且以这个点建立一个极坐标系