오차 범위 수정
This commit is contained in:
parent
381c639d18
commit
8da2ab0820
@ -861,14 +861,13 @@ export const usePolygon = () => {
|
|||||||
/*innerLine.set({ stroke: originInnerStroke })
|
/*innerLine.set({ stroke: originInnerStroke })
|
||||||
canvas.renderAll()*/
|
canvas.renderAll()*/
|
||||||
})
|
})
|
||||||
/*line.set({ intersections })
|
line.set({ intersections })
|
||||||
|
|
||||||
line.set({ stroke: originStroke })
|
/*line.set({ stroke: originStroke })
|
||||||
canvas.renderAll()*/
|
canvas.renderAll()*/
|
||||||
})
|
})
|
||||||
|
|
||||||
const divideLines = polygonLines.filter((line) => line.intersections?.length > 0)
|
const divideLines = polygonLines.filter((line) => line.intersections?.length > 0)
|
||||||
|
|
||||||
let newLines = []
|
let newLines = []
|
||||||
|
|
||||||
divideLines.forEach((line) => {
|
divideLines.forEach((line) => {
|
||||||
|
|||||||
@ -533,11 +533,11 @@ export function isPointOnLine({ x1, y1, x2, y2 }, { x, y }, epsilon = 2) {
|
|||||||
return result <= 10*!*/
|
return result <= 10*!*/
|
||||||
// 직선 방정식 만족 여부 확인
|
// 직선 방정식 만족 여부 확인
|
||||||
const crossProduct = (y - y1) * (x2 - x1) - (x - x1) * (y2 - y1)
|
const crossProduct = (y - y1) * (x2 - x1) - (x - x1) * (y2 - y1)
|
||||||
if (Math.abs(crossProduct) > 500) return false // 작은 오차 허용
|
if (Math.abs(crossProduct) > 1000) return false // 작은 오차 허용
|
||||||
|
|
||||||
// 점이 선분의 범위 내에 있는지 확인
|
// 점이 선분의 범위 내에 있는지 확인
|
||||||
const withinXRange = Math.min(x1, x2) <= x && x <= Math.max(x1, x2)
|
const withinXRange = Math.abs(Math.min(x1, x2) - x) <= 2 || 2 <= Math.abs(Math.max(x1, x2) - x)
|
||||||
const withinYRange = Math.min(y1, y2) <= y && y <= Math.max(y1, y2)
|
const withinYRange = Math.abs(Math.min(y1, y2) - y) <= 2 || 2 <= Math.abs(Math.max(y1, y2) - y)
|
||||||
|
|
||||||
return withinXRange && withinYRange
|
return withinXRange && withinYRange
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user