我必须检查是否存在垂直。
我正在使用由两点定义的一个线段
然后我必须垂直,所以它进入第三点
这工作正常,但我不知道如何检查垂直是否存在。
我计算了TP(x4,y4)(T1,T2线上的点):
double dx = x2 - x1;
double dy = y2 - y1;
double mag = Math.Sqrt(dx * dx + dy * dy);
dx /= mag;
dy /= mag;
double lambda = (dx * (x3 - x1)) + (dy * (y3 - y1));
rx1 = (dx * lambda) + x1;
ry1 = (dy * lambda) + y1;
这很好用:
这应该抛出一个错误:
如果您只需要检查垂直是否存在,那么您可以执行以下操作(基于草图):
评估矢量之间的角度是微不足道的:查找vector dot product or scalar product。