我有几点要点。我想将它们分为2个不同的集合。为此,我选择两个点( a 和 b )并在它们之间画一条假想线。现在,我要使一组中的该行剩余的点和另一组中的该行右边的点。
如何确定给定点 z 是在左侧还是右侧?我试图计算 azb 之间的角度-小于180度的角度在右侧,大于180度的左侧- 但是由于ArcCos的定义,计算出的角度始终小于180°。是否存在用于计算大于180°的角度的公式(或用于选择右侧或左侧的任何其他公式)?
使用vector的行列式符号(AB,AM),其中M(X,Y)查询点为:
(AB,AM)
M(X,Y)
position = sign((Bx - Ax) * (Y - Ay) - (By - Ay) * (X - Ax))
它0在线上,+1在一侧,-1在另一侧。
0
+1
-1