From c8421d1253a433d58ebc3d4582ba47f9f1bc2bb1 Mon Sep 17 00:00:00 2001 From: Cha Date: Thu, 25 Sep 2025 23:06:58 +0900 Subject: [PATCH] =?UTF-8?q?skeleton=20-=20=EB=AA=A8=EB=93=A0=20=EC=84=A0?= =?UTF-8?q?=EB=B6=84=EA=B3=BC=EC=9D=98=20=EA=B8=B0=ED=95=98=ED=95=99?= =?UTF-8?q?=EC=A0=81=20=EA=B5=90=EC=B0=A8=EC=A0=90=EC=9D=84=20=ED=83=90?= =?UTF-8?q?=EC=83=89=ED=95=98=EC=97=AC=20=EA=B0=80=EC=9E=A5=20=EA=B0=80?= =?UTF-8?q?=EA=B9=8C=EC=9A=B4=20=EC=9C=A0=ED=9A=A8=ED=95=9C=20=EC=A0=90?= =?UTF-8?q?=EC=9D=84=20=EC=B0=BE=EB=8A=943=20=EB=A1=9C=EA=B7=B8=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/util/skeleton-utils.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/util/skeleton-utils.js b/src/util/skeleton-utils.js index fde9444a..dca908c2 100644 --- a/src/util/skeleton-utils.js +++ b/src/util/skeleton-utils.js @@ -149,7 +149,6 @@ const createInnerLinesFromSkeleton = (skeleton, baseLines, roof, canvas, textMod // 3. 최종적으로 정리된 스켈레톤 선들을 QLine 객체로 변환하여 캔버스에 추가합니다. - const innerLines = []; skeletonLines.forEach(line => { const { p1, p2, attributes, lineStyle } = line; const innerLine = new QLine([p1.x, p1.y, p2.x, p2.y], { @@ -560,6 +559,7 @@ export const findDisconnectedSkeletonLines = (skeletonLines, baseLines) => { /** * 연장된 스켈레톤 라인들이 서로 교차하는 경우, 교차점에서 잘라냅니다. + * 이 함수는 skeletonLines 배열의 요소를 직접 수정하여 접점에서 선이 멈추도록 합니다. * @param {Array} skeletonLines - (수정될) 전체 스켈레톤 라인 배열 * @param {Array} disconnectedLines - 연장 정보가 담긴 배열 */ @@ -570,7 +570,8 @@ const trimIntersectingExtendedLines = (skeletonLines, disconnectedLines) => { const dLine1 = disconnectedLines[i]; const dLine2 = disconnectedLines[j]; - // 연장된 후의 선분 객체를 가져옴 + // skeletonLines 배열에서 직접 참조를 가져오므로, 여기서 line1, line2를 수정하면 + // 원본 skeletonLines 배열의 내용이 변경됩니다. const line1 = skeletonLines[dLine1.index]; const line2 = skeletonLines[dLine2.index]; @@ -580,7 +581,8 @@ const trimIntersectingExtendedLines = (skeletonLines, disconnectedLines) => { const intersection = getLineIntersection(line1.p1, line1.p2, line2.p1, line2.p2); if (intersection) { - // 교차점이 있다면, 각 선의 연장된 끝점을 교차점으로 업데이트 + // 교차점이 있다면, 각 선의 연장된 끝점을 교차점으로 업데이트합니다. + // 이 변경 사항은 skeletonLines 배열에 바로 반영됩니다. if (!dLine1.p1Connected) { // p1이 연장된 점이었으면 line1.p1 = intersection; } else { // p2가 연장된 점이었으면