问题描述:

已知空间点坐标(x,y,z),并且知道三个点的坐标(不要共线!),求解空间点到平面投影坐标。

参考百度文库的这篇文章
空间点到平面的垂足坐标的计算方法

下面是matlab的代码:


%% 变量定义
% 空间坐标点 x/y/z坐标分别为x4 y4 z4(需要手动修改!!)
Data_Origin=[x4,y4,z4];

% 取平面上的三个点 (不要共线!)
% PlanePointX:平面上三个点的x坐标,分别是x1 x2 x3(需要手动修改!!)
PlanePointX=[x1,x2,x3];
% PlanePointY:平面上三个点的y坐标,分别是y1 y2 y3(需要手动修改!!)
PlanePointY=[y1,y2,y3];
% PlanePointZ:平面上三个点的z坐标,分别是z1 z2 z3(需要手动修改!!)
PlanePointZ=[z1,z2,z3];
PlanePoint=[PlanePointX',PlanePointY',PlanePointZ'];

%% 求解平面方程Ax+By+Cz+1=0的A、B、C三个参数为paraA paraB paraC
para=-PlanePoint\ones(3,1);
paraA=para(1);
paraB=para(2);
paraC=para(3);

%% 投影坐标计算最终坐标为Data_projection,一个列向量
Matrix_head=([PlanePoint(2,:)-PlanePoint(1,:);...
				PlanePoint(3,:)-PlanePoint(1,:);...
				paraA, paraB, paraC]);
Data_projection=Matrix_head\...
				[dot(Data_Origin,(PlanePoint(2,:)-PlanePoint(1,:)));...
				 dot(Data_Origin,(PlanePoint(3,:)-PlanePoint(1,:)));...
				 -1];
    
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐