pointOnLine 수정
This commit is contained in:
parent
976396cd78
commit
72c020acea
@ -535,9 +535,21 @@ export function isPointOnLine({ x1, y1, x2, y2 }, { x, y }, epsilon = 2) {
|
|||||||
const crossProduct = (y - y1) * (x2 - x1) - (x - x1) * (y2 - y1)
|
const crossProduct = (y - y1) * (x2 - x1) - (x - x1) * (y2 - y1)
|
||||||
if (Math.abs(crossProduct) > 1000) return false // 작은 오차 허용
|
if (Math.abs(crossProduct) > 1000) return false // 작은 오차 허용
|
||||||
|
|
||||||
|
const isSameX = Math.abs(x1 - x2) < 2
|
||||||
|
const isSameY = Math.abs(y1 - y2) < 2
|
||||||
|
|
||||||
// 점이 선분의 범위 내에 있는지 확인
|
// 점이 선분의 범위 내에 있는지 확인
|
||||||
const withinXRange = Math.min(x1, x2) - x <= 2 && 2 <= Math.max(x1, x2) - x
|
let withinXRange = Math.min(x1, x2) - x <= 2
|
||||||
const withinYRange = Math.min(y1, y2) - y <= 2 && 2 <= Math.max(y1, y2) - y
|
if (!isSameX) {
|
||||||
|
withinXRange = withinXRange && 2 <= Math.max(x1, x2) - x
|
||||||
|
}
|
||||||
|
|
||||||
|
let withinYRange = Math.min(y1, y2) - y <= 2
|
||||||
|
if (!isSameY) {
|
||||||
|
withinYRange = withinYRange && 2 <= Math.max(y1, y2) - y
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(Math.min(x1, x2) - x, Math.max(x1, x2) - x)
|
||||||
|
|
||||||
return withinXRange && withinYRange
|
return withinXRange && withinYRange
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user