マウスポインタの位置を中心としたズーム
マウスポインタの位置を中心としたズーム
ズームは現状、画面中心を起点としているが、人間にとって自然なのはマウスポインタの位置を中心としたズーム
こんな感じ
code: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));
}
Shift+ドラッグだけではなく、マウスホイールやMacBookでの二本指上下スワイプにも対応するため括り出した。