点到线段的最短距离。。。。
最近需要用一个计算 “ 点 到 线段的最短距离 Dis” 的小函数,按照自己理解写的,有些地方不严谨,贴上脚本行大家来指正。LA, LB, LC是一个点与线段形成的三角形的三边长(也可能不是三角形,这里假设LA, LB,LC任意两个之和大于第三个)。Dis是最小距离,Arc#是对边角度,单位是弧度。defun( getDistance (LA LB LC)ArcA = acos((LC**2 + LB**2 - LA**2)/(2*LB*LC))
ArcB = acos((LA**2 + LC**2 - LB**2)/(2*LA*LC))
ArcC = acos((LA**2 + LB**2 - LC**2)/(2*LA*LB))
cond(
(ArcB >= pi/2 Dis = LC )
(ArcC >= pi/2 Dis = LB )
(ArcB < pi/2 && ArcC < pi/2 Dis = sin(ArcB)*LC)
);cond
Dis = round(Dis)
);defun 学习学习 学习学习
学习学习
页:
[1]