From 7ebb1297ac75987b3348dd81a57e0d25ed0a7405 Mon Sep 17 00:00:00 2001 From: Max Richter Date: Mon, 20 Apr 2026 19:45:34 +0200 Subject: [PATCH] feat(app): make zoom in nicer --- app/src/lib/graph-interface/keymaps.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/lib/graph-interface/keymaps.ts b/app/src/lib/graph-interface/keymaps.ts index 44d98f4..027c4d1 100644 --- a/app/src/lib/graph-interface/keymaps.ts +++ b/app/src/lib/graph-interface/keymaps.ts @@ -73,19 +73,20 @@ export function setupKeymaps(keymap: Keymap, graph: GraphManager, graphState: Gr average[0] += node.position[0]; average[1] += node.position[1]; } - average[0] = average[0] ? average[0] / graph.nodes.size : 0; - average[1] = average[1] ? average[1] / graph.nodes.size : 0; + average[0] = (average[0] / graph.nodes.size) + 10; + average[1] /= graph.nodes.size; const camX = graphState.cameraPosition[0]; const camY = graphState.cameraPosition[1]; const camZ = graphState.cameraPosition[2]; const ease = (t: number) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t); + const easeZoom = (t: number) => t * t * (3 - 2 * t); animate(500, (a: number) => { graphState.cameraPosition[0] = lerp(camX, average[0], ease(a)); graphState.cameraPosition[1] = lerp(camY, average[1], ease(a)); - graphState.cameraPosition[2] = lerp(camZ, 2, ease(a)); + graphState.cameraPosition[2] = lerp(camZ, 4, easeZoom(a)); if (graphState.mouseDown) return false; }); }