vue3-sketch-ruler
Version:
> 是一个基于 Vue 3 + TypeScript 的标尺组件库,适用于低代码平台、大屏可视化、做图工具等场景,提供类似 Photoshop 的缩放与标尺辅助线体验。
49 lines • 1.47 kB
TypeScript
import { Ref } from 'vue';
import { TransformEngine, TransformState, TransformEngineOptions } from '@sketch-ruler/core';
export interface CanvasTransformOptions {
initialScale?: number;
initialOffset?: {
x: number;
y: number;
};
minZoom?: number;
maxZoom?: number;
enableAnimation?: boolean;
animationMode?: TransformEngineOptions['animationMode'];
dampingRatio?: number;
naturalFrequency?: number;
timeConstant?: number;
autoCenter?: boolean;
canvasSize?: {
width: number;
height: number;
};
viewportSize?: {
width: number;
height: number;
};
paddingRatio?: number;
}
export interface UseCanvasTransformReturn {
scale: Ref<number>;
offset: Ref<{
x: number;
y: number;
}>;
engine: TransformEngine;
setTransform: (t: Partial<TransformState>) => void;
panBy: (dx: number, dy: number) => void;
zoomBy: (dScale: number, originX: number, originY: number) => void;
zoomTo: (scale: number, originX: number, originY: number) => void;
toWorldPoint: (screenX: number, screenY: number) => {
x: number;
y: number;
};
toScreenPoint: (worldX: number, worldY: number) => {
x: number;
y: number;
};
reset: () => void;
}
export declare function useCanvasTransform(options?: CanvasTransformOptions): UseCanvasTransformReturn;
//# sourceMappingURL=useCanvasTransform.d.ts.map