符号P=[px,py], D=[dx,dy], E=[ex,ey], Q=[qx,qy]
First:
R=P-D=[px-dx, py-dy]=[rx,ry]
K=E-D=[ex-dx, ey-dy]=[kx, ky]
Then
z=dot(R,K)/dot(K,K)=(rx*kx+ry*ky) / (kx*kx+ky*ky)
Finally
Q=D+z*K=[dx+z*kx, dy+z*ky]
R 是从 D 点开始到 K 点结束的向量,K 是从 D 点开始到 E 点结束的向量。使用它我们进行标量投影来计算结果 Q。有关概念的更多信息here https://en.wikipedia.org/w/index.php?title=Dot_product#Scalar_projection_and_first_properties