欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 空间解析几何3-空间点到线段和平面的距离【附MATLAB代码】

空间解析几何3-空间点到线段和平面的距离【附MATLAB代码】

2025/2/9 10:57:08 来源:https://blog.csdn.net/y12345655/article/details/142873856  浏览:    关键词:空间解析几何3-空间点到线段和平面的距离【附MATLAB代码】

目录

空间中点到线段的距离

空间中点到平面的投影和距离

matlab代码

空间中点到线段的距离

空间中点到平面的投影和距离

matlab代码

function [dis,P2,t]= point2Line (A1,B1,C1)
%求空间一点到一线段的最短距离 
%[dis,P2,Q2]=pointSegmentDistance(A,B,C)
%A B为线段首末端点,C为空间一点
%dis为最短距离 P2 Q2为最短距离的首末端点% 取0~1时P点在线段AB上滑动,>1 P点在B端点外,<0 P点在A端点外
A = B1(1)-A1(1);
B = B1(2)-A1(2);
C = B1(3)-A1(3);
D = A1(1)-C1(1);
E = A1(2)-C1(2);
F = A1(3)-C1(3);
t = -(A*D+B*E+C*F)/(A*A+B*B+C*C);
if t>1t=1;
elseif t<0t=0;
end
x1 = A1(1) + A*t;
y1 = A1(2) + B*t;
z1 = A1(3) + C*t;
dis = sqrt((x1-C1(1))^2+(y1-C1(2))^2+(z1-C1(3))^2);
P2 = [x1 ,y1,z1];
end
function result=Point2planceDis(P,n,Pn)
% output
% result 为点到平面的距离
% input
% P空间中一点 n为平面的单位法向量,Pn为平面上一点A = n(1)*P(1)+n(2)*P(2)+n(3)*P(3);
B = n(1)*Pn(1)+n(2)*Pn(2)+n(3)*Pn(3);
C = n(1)^2+n(2)^2+n(3)^2;
t = (A-B)/C;
x = P(1)-t*n(1);
y = P(2)-t*n(2);
z = P(3)-t*n(3);
%投影点坐标
Q = [x,y,z];
%距离
PQ = P-Q;
result = norm(PQ);
end

下一章:空间解析几何4-空间中点到椭圆的距离【附MATLAB代码】

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com