Geometry 在线段中投影点:如果线段的端点具有相同的坐标,该怎么办?
考虑以下等式和指令: p=x-a.b-a/b-a.b-a b-a+a 其中a和b是线段的端点,x是我们要在该线段中投影的点,p是x在该线段中的投影。所有的向量都是点 现在,设置p的X坐标的代码:Geometry 在线段中投影点:如果线段的端点具有相同的坐标,该怎么办?,geometry,coordinates,point,projection,Geometry,Coordinates,Point,Projection,考虑以下等式和指令: p=x-a.b-a/b-a.b-a b-a+a 其中a和b是线段的端点,x是我们要在该线段中投影的点,p是x在该线段中的投影。所有的向量都是点 现在,设置p的X坐标的代码: coords_p.add( "" + ( ((test_x - segment_first_point_x) * (segment_last_poin
coords_p.add(
""
+ (
((test_x - segment_first_point_x) * (segment_last_point_x - segment_first_point_x)) // "((x - a).(b - a))"
/
(// "((b - a).(b - a))"
(segment_last_point_x - segment_first_point_x) * (segment_last_point_x - segment_first_point_x)
)
*
(segment_last_point_x - segment_first_point_x) // "* (b - a)"
+
segment_first_point_x) // " + a"
);
coords_p.add(
""
+ (
((test_y - segment_first_point_y) * (segment_last_point_y - segment_first_point_y)) // "((x - a).(b - a))"
/
(0.00001+ // "((b - a).(b - a))"
(segment_last_point_y - segment_first_point_y) * (segment_last_point_y - segment_first_point_y)
)
*
(segment_last_point_y - segment_first_point_y) // "* (b - a)"
+
segment_first_point_y) // " + a"
);
现在,p的Y坐标也是一样的:
coords_p.add(
""
+ (
((test_x - segment_first_point_x) * (segment_last_point_x - segment_first_point_x)) // "((x - a).(b - a))"
/
(// "((b - a).(b - a))"
(segment_last_point_x - segment_first_point_x) * (segment_last_point_x - segment_first_point_x)
)
*
(segment_last_point_x - segment_first_point_x) // "* (b - a)"
+
segment_first_point_x) // " + a"
);
coords_p.add(
""
+ (
((test_y - segment_first_point_y) * (segment_last_point_y - segment_first_point_y)) // "((x - a).(b - a))"
/
(0.00001+ // "((b - a).(b - a))"
(segment_last_point_y - segment_first_point_y) * (segment_last_point_y - segment_first_point_y)
)
*
(segment_last_point_y - segment_first_point_y) // "* (b - a)"
+
segment_first_point_y) // " + a"
);
如您所见,如果segment_last_point_y==segment_first_point_y或segment_last_point_x==segment_first_point_x,则除法的分母将为0
因此,p的一个或两个坐标将是NaN而不是数字:它将是无效的
所以我想我不明白如何表达一个观点。。。你能告诉我吗?你好:问题在于你对p的计算,它不应该是,或者正如你所描述的,它应该是,因为p公式中系数的分母是b-a.b-a。当且仅当a和b是同一点时,该值应为0,即实际上没有线段