excalidraw/src/scene/zoom.ts

27 lines
654 B
TypeScript
Raw Normal View History

export const getZoomOrigin = (
canvas: HTMLCanvasElement | null,
scale: number,
) => {
if (canvas === null) {
return { x: 0, y: 0 };
}
const context = canvas.getContext("2d");
if (context === null) {
return { x: 0, y: 0 };
}
const normalizedCanvasWidth = canvas.width / scale;
const normalizedCanvasHeight = canvas.height / scale;
return {
x: normalizedCanvasWidth / 2,
y: normalizedCanvasHeight / 2,
};
};
export const getNormalizedZoom = (zoom: number): number => {
const normalizedZoom = parseFloat(zoom.toFixed(2));
const clampedZoom = Math.max(0.1, Math.min(normalizedZoom, 2));
return clampedZoom;
};