NISHIO Hirokazu[Translate]
マウスポインタの位置を中心としたズーム
マウスポインタの位置を中心としたズーム
ズームは現状、画面中心を起点としているが、人間にとって自然なのはマウスポインタの位置を中心としたズーム

こんな感じ
ts
export function zoomAroundMousePointer( initZoom: number, initCenter: paper.Point, zoomCenter: paper.Point, scale: number, ) { const v = initCenter.subtract(zoomCenter); let newZoom = initZoom * scale; let newCenter = initCenter.add(v.multiply((1 - scale) / scale)); return [newZoom, newCenter]; }

Shift+ドラッグだけではなく、マウスホイールやMacBookでの二本指上下スワイプにも対応するため括り出した。

"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]