点线投影
几何图元中定义的线包括: 线段(LineSegment2)
, 圆(Circle2)
, 圆弧(Arc2)
, 直线(Line2)
, 射线(Ray2)
, 本文中的点线投影包含以下几种情况:
point_2_line_segment_2_projection
: 点到线段的投影
point_2_line_2_projection
: 点到直线的投影
point_2_ray_2_projection
: 点到射线的投影
点到线段的投影
点 P 到线段 AB
的投影是线段 AB
上的一个点 P′, 使得 PP′ 垂直
于AB
, 且 P′ 在AB
上.
-
计算 AP 在 AB 上的投影比例 t:
v = AP⋅AB
w = AB⋅AB
如果 v < 0 或者 v > w, 则说明 P′ 不在 AB
上, 结束
t = wv
-
计算 P′ 的坐标:
P′ = A+t⋅AB
点到直线的投影
直线 l 的一般方程为: Ax+By+C = 0
点 P(x0,y0) 到直线 l 的投影是直线 l 上的一个点 P′(x1,y1), 使得 PP′ 垂直
于 l.
-
如果 B = 0, 说明直线 l 为垂直于 x 轴的直线, 则 P′(−AC,y0).
-
如果 A = 0, 说明直线 l 为垂直于 y 轴的直线, 则 P′(x0,−BC).
-
直线 PP′ 的一般方程为: BAx−y+y0−BA⋅x0 = 0, 与直线 l 的交点即为 P′.
-
求解交点 P′ 的坐标:
A2 = BA
B2 = −1
C2 = y0−A2⋅x0
x1 = A⋅B2−A2⋅B−B2⋅C+B⋅C2
y1 = A⋅B2−A2⋅BA2⋅C−A⋅C2
ToDo: 点到射线的投影