我正在尝试在离给定点最近的飞机上找到一个点。 我有平面方程,它们之间的点和距离。 如何找到距离给定点最近的平面上的点?离点最近的飞机上的点
我有一个四面体的边: bcx = 0,acy = 0,abz = 0,x/a + y/b + z/c = 1(a,b,c不要与Ax +由平面方程中的+ Cz = D,在运行脚本时要输入它们)。
function [d n]=tetradist(x,y,z,a,b,c)
if z>0 && y>0 && x>0 && z<c && y<b && x<a && x/a+y/b+z/c<1
d1=abs(a*b*z)/sqrt((a*b)^2);
d2=abs(b*c*x)/sqrt((b*c)^2);
d3=abs(a*c*y)/sqrt((a*c)^2);
d4=abs(b*c*x+a*c*y+a*b*z-a*b*c)/sqrt((b*c)^2 + (a*c)^2 + (a*b)^2);
A = [d1 d2 d3 d4];
B = sort(A,'ascend');
d = B(1);
point=[x y z];
if d==d1
normalv=[0 0 a*b]';
elseif d==d2
normalv=[b*c 0 0]';
elseif d==d3
normalv=[0 a*c 0]';
else
normalv=[b*c a*c a*b]';
end
end
所以,现在我有最短的距离,我的点作为一个向量和最接近的平面的法向量。现在我该如何找到离我的观点最近的飞机上的那个点?
在此先感谢!
哟要求数学?或者如何在Matlab中做到这一点?如果前者,那么也许math.stackexchange更好,如果后者然后请张贴一些代码和方程等... – Dan 2013-05-09 09:15:44
在matlab中,我可以做数学,但问题是,当我编写脚本来搜索我尝试通过遍历所有点来搜索它,但由于点有一些小数点,循环很快变得非常讨厌。 – simtaxman 2013-05-09 09:21:23
发布您到目前为止的代码 – Dan 2013-05-09 09:24:13