代碼段解析:
const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);
第一部分:(yi > y) !== (yj > y)
作用:檢查點 (x,y)
的垂直位置是否跨越多邊形的當前邊。
-
yi > y
和yj > y
-
分別檢查邊的兩個端點
(xi,yi)
和(xj,yj)
是否在點(x,y)
的上方。 -
例如:
-
若
yi > y
為true
,表示端點i
在點的上方。 -
若
yj > y
為false
,表示端點j
在點的下方。
-
-
-
!==
異或邏輯-
只有當兩個端點在點的 不同側(一個在上,一個在下)時,表達式為
true
。 -
這表示當前邊 可能</
-