From 269ec3e2136fdfa4956feb9926768d104ea6b0f4 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sun, 2 Aug 2026 01:13:24 +0900 Subject: [PATCH] =?UTF-8?q?feat(B04,B05):=202D=20=EC=A7=80=EB=8F=84=20?= =?UTF-8?q?=ED=9C=A0=20=EC=A4=8C=20=EB=B0=A9=ED=96=A5=20=EB=B0=98=EC=A0=84?= =?UTF-8?q?=20=E2=80=94=20=EB=8B=B9=EA=B8=B0=EB=A9=B4=20=ED=99=95=EB=8C=80?= =?UTF-8?q?,=20=EB=B0=80=EB=A9=B4=20=EC=B6=95=EC=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit B04 2D 지도와 B05 배수유역도의 휠 판정을 deltaY > 0 기준으로 바꿨다. 커서 아래 지점을 고정하는 offset 보정은 그대로다. 3D 뷰어는 손대지 않았다. Co-Authored-By: Claude Opus 5 (1M context) --- B04_wf1_Surface/B04_wf1_Surface_UI_MapViewer.ts | 3 ++- B05_wf2_Route/B05_wf2_Route_UI_Drainage_Panel.ts | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/B04_wf1_Surface/B04_wf1_Surface_UI_MapViewer.ts b/B04_wf1_Surface/B04_wf1_Surface_UI_MapViewer.ts index 33be8896..a3e75e97 100644 --- a/B04_wf1_Surface/B04_wf1_Surface_UI_MapViewer.ts +++ b/B04_wf1_Surface/B04_wf1_Surface_UI_MapViewer.ts @@ -517,7 +517,8 @@ export function createSurfaceMapViewer(): SurfaceMapViewer { (event) => { event.preventDefault(); const prevScale = scale; - scale = Math.min(8, Math.max(0.5, scale * (event.deltaY < 0 ? 1.15 : 0.87))); + // 휠을 **당기면 확대**, 밀면 축소한다(2026-08-02 사용자 지시). 일반 스크롤과 반대 방향이다. + scale = Math.min(8, Math.max(0.5, scale * (event.deltaY > 0 ? 1.15 : 0.87))); // 마우스 커서 아래 지점이 줌 전후로 같은 화면 위치에 머물도록 offset 보정. // screen = center + (base - center)·scale + offset 이므로, // 커서 고정 조건을 풀면 offset' = (cursor - center)·(1 - r) + offset·r (r = scale'/scale). diff --git a/B05_wf2_Route/B05_wf2_Route_UI_Drainage_Panel.ts b/B05_wf2_Route/B05_wf2_Route_UI_Drainage_Panel.ts index 52589985..9bd8b1ba 100644 --- a/B05_wf2_Route/B05_wf2_Route_UI_Drainage_Panel.ts +++ b/B05_wf2_Route/B05_wf2_Route_UI_Drainage_Panel.ts @@ -336,7 +336,6 @@ export function createDrainagePanel(callbacks: DrainagePanelCallbacks = {}): Dra }); } - /** 유역 제원 목록을 다시 그린다. 항목을 누르면 해당 유역만 진하게 강조한다. */ /** 유역 제원 목록. 항목을 누르면 그 유역만 진하게 강조한다. */ const renderBasinList = (): void => renderBasinRows(basinList, basins, selectedBasin, (index) => @@ -504,7 +503,8 @@ export function createDrainagePanel(callbacks: DrainagePanelCallbacks = {}): Dra (event) => { event.preventDefault(); const prevScale = scale; - scale = Math.min(16, Math.max(0.5, scale * (event.deltaY < 0 ? 1.15 : 0.87))); + // 휠을 **당기면 확대**, 밀면 축소한다(2026-08-02 사용자 지시). B04 2D 지도와 같은 방향이다. + scale = Math.min(16, Math.max(0.5, scale * (event.deltaY > 0 ? 1.15 : 0.87))); // 커서 아래 지점을 고정한 채 확대/축소 (B04 지도와 동일 동작). const ratio = scale / prevScale; const rect = viewport.getBoundingClientRect();