target 의 좌표비교 변경 Math.abs(target.y1 - target.y2) < 0.2 #400

Merged
ysCha merged 1 commits from dev_ysCha into dev 2025-10-27 13:19:34 +09:00

View File

@ -217,6 +217,8 @@ export function useMovementSetting(id) {
} }
} }
let currentCalculatedValue = 0
const mouseMoveEvent = (e) => { const mouseMoveEvent = (e) => {
const target = canvas.getActiveObject() const target = canvas.getActiveObject()
if (!target) return if (!target) return
@ -224,61 +226,71 @@ export function useMovementSetting(id) {
const { top: targetTop, left: targetLeft } = target const { top: targetTop, left: targetLeft } = target
const currentX = Big(getIntersectMousePoint(e).x) //.round(0, Big.roundUp) const currentX = Big(getIntersectMousePoint(e).x) //.round(0, Big.roundUp)
const currentY = Big(getIntersectMousePoint(e).y) //.round(0, Big.roundUp) const currentY = Big(getIntersectMousePoint(e).y) //.round(0, Big.roundUp)
let value = '' let value = ''
if (target.y1 === target.y2) { if (Math.abs(target.y1 - target.y2) < 0.5) {
// 가로라인의 경우
value = Big(targetTop).minus(currentY).times(10).round(0) value = Big(targetTop).minus(currentY).times(10).round(0)
console.log('가로라인 계산:', `${targetTop} - ${currentY.toNumber()} = ${value.toNumber()}`)
} else { } else {
// 세로라인의 경우
value = Big(targetLeft).minus(currentX).times(10).round(0).neg() value = Big(targetLeft).minus(currentX).times(10).round(0).neg()
console.log('세로라인 계산:', `-(${targetLeft} - ${currentX.toNumber()}) = ${value.toNumber()}`)
} }
if (typeRef.current === TYPE.FLOW_LINE) {
FLOW_LINE_REF.POINTER_INPUT_REF.current.value = value.toNumber() currentCalculatedValue = value.toNumber()
} else {
UP_DOWN_REF.POINTER_INPUT_REF.current.value = value.abs().toNumber() if (typeRef.current === TYPE.FLOW_LINE) {
const midX = Big(target.x1).plus(target.x2).div(2) FLOW_LINE_REF.POINTER_INPUT_REF.current.value = value.toNumber()
const midY = Big(target.y1).plus(target.y2).div(2)
const wall = canvas.getObjects().find((obj) => obj.id === target.attributes.wallId)
let checkPoint
if (target.y1 === target.y2) {
checkPoint = { x: midX.toNumber(), y: midY.plus(10).toNumber() }
if (wall.inPolygon(checkPoint)) {
if (value.s === -1) {
UP_DOWN_REF.UP_RADIO_REF.current.checked = false
UP_DOWN_REF.DOWN_RADIO_REF.current.checked = true
} else {
UP_DOWN_REF.UP_RADIO_REF.current.checked = true
UP_DOWN_REF.DOWN_RADIO_REF.current.checked = false
}
} else { } else {
if (value.s === 1) { UP_DOWN_REF.POINTER_INPUT_REF.current.value = value.abs().toNumber()
UP_DOWN_REF.UP_RADIO_REF.current.checked = false const midX = Big(target.x1).plus(target.x2).div(2)
UP_DOWN_REF.DOWN_RADIO_REF.current.checked = true const midY = Big(target.y1).plus(target.y2).div(2)
const wall = canvas.getObjects().find((obj) => obj.id === target.attributes.wallId)
let checkPoint
if (target.y1 === target.y2) {
checkPoint = { x: midX.toNumber(), y: midY.plus(10).toNumber() }
if (wall.inPolygon(checkPoint)) {
if (value.s === -1) {
UP_DOWN_REF.UP_RADIO_REF.current.checked = false
UP_DOWN_REF.DOWN_RADIO_REF.current.checked = true
} else {
UP_DOWN_REF.UP_RADIO_REF.current.checked = true
UP_DOWN_REF.DOWN_RADIO_REF.current.checked = false
}
} else {
if (value.s === 1) {
UP_DOWN_REF.UP_RADIO_REF.current.checked = false
UP_DOWN_REF.DOWN_RADIO_REF.current.checked = true
} else {
UP_DOWN_REF.UP_RADIO_REF.current.checked = true
UP_DOWN_REF.DOWN_RADIO_REF.current.checked = false
}
}
} else { } else {
UP_DOWN_REF.UP_RADIO_REF.current.checked = true checkPoint = { x: midX.plus(10).toNumber(), y: midY.toNumber() }
UP_DOWN_REF.DOWN_RADIO_REF.current.checked = false if (wall.inPolygon(checkPoint)) {
} if (value.s === 1) {
} UP_DOWN_REF.UP_RADIO_REF.current.checked = false
} else { UP_DOWN_REF.DOWN_RADIO_REF.current.checked = true
checkPoint = { x: midX.plus(10).toNumber(), y: midY.toNumber() } } else {
if (wall.inPolygon(checkPoint)) { UP_DOWN_REF.UP_RADIO_REF.current.checked = true
if (value.s === 1) { UP_DOWN_REF.DOWN_RADIO_REF.current.checked = false
UP_DOWN_REF.UP_RADIO_REF.current.checked = false }
UP_DOWN_REF.DOWN_RADIO_REF.current.checked = true } else {
} else { if (value.s === -1) {
UP_DOWN_REF.UP_RADIO_REF.current.checked = true UP_DOWN_REF.UP_RADIO_REF.current.checked = false
UP_DOWN_REF.DOWN_RADIO_REF.current.checked = false UP_DOWN_REF.DOWN_RADIO_REF.current.checked = true
} } else {
} else { UP_DOWN_REF.UP_RADIO_REF.current.checked = true
if (value.s === -1) { UP_DOWN_REF.DOWN_RADIO_REF.current.checked = false
UP_DOWN_REF.UP_RADIO_REF.current.checked = false }
UP_DOWN_REF.DOWN_RADIO_REF.current.checked = true }
} else {
UP_DOWN_REF.UP_RADIO_REF.current.checked = true
UP_DOWN_REF.DOWN_RADIO_REF.current.checked = false
} }
} }
} }
}
}
const mouseDownEvent = (e) => { const mouseDownEvent = (e) => {
canvas canvas
@ -287,6 +299,7 @@ export function useMovementSetting(id) {
.forEach((obj) => canvas.remove(obj)) .forEach((obj) => canvas.remove(obj))
canvas.renderAll() canvas.renderAll()
//const target = selectedObject.current
const target = selectedObject.current const target = selectedObject.current
if (!target) return if (!target) return