diff --git a/src/hooks/surface/useSurfaceShapeBatch.js b/src/hooks/surface/useSurfaceShapeBatch.js index d7df9b6d..27a6f737 100644 --- a/src/hooks/surface/useSurfaceShapeBatch.js +++ b/src/hooks/surface/useSurfaceShapeBatch.js @@ -208,6 +208,13 @@ export function useSurfaceShapeBatch({ isHidden, setIsHidden }) { isXInversion: xInversion, isYInversion: yInversion, }) + // 최초 생성 시 planeSize를 계산된 길이로 저장 (회전 후 좌표 반올림에 의한 오차 방지) + batchSurface.lines.forEach((line) => { + if (!line.attributes.planeSize || line.attributes.planeSize === 0) { + line.attributes.planeSize = line.getLength() + } + }) + canvas.setActiveObject(batchSurface) setSurfaceShapePattern(batchSurface, roofDisplay.column) drawDirectionArrow(batchSurface) @@ -375,9 +382,9 @@ export function useSurfaceShapeBatch({ isHidden, setIsHidden }) { } points = [ - { x: pointer.x, y: pointer.y - parseInt(newLength2) / 2 }, - { x: pointer.x - parseInt(length1) / 2, y: pointer.y + parseInt(newLength2) / 2 }, - { x: pointer.x + parseInt(length1) / 2, y: pointer.y + parseInt(newLength2) / 2 }, + { x: pointer.x, y: pointer.y - newLength2 / 2 }, + { x: pointer.x - length1 / 2, y: pointer.y + newLength2 / 2 }, + { x: pointer.x + length1 / 2, y: pointer.y + newLength2 / 2 }, ] break