UNPKG

js-web-screen-shot

Version:

web端自定义截屏插件(原生JS版)

57 lines (56 loc) 2.38 kB
type EllipseBounds = { x: number; y: number; width: number; height: number; }; interface DrawCircleDotOptions { drawState: boolean; dotRadius: number; } /** * 规范化椭圆外接矩形,确保宽高为正且左上角坐标正确 */ export declare const normalizeEllipseBounds: (bounds: EllipseBounds) => EllipseBounds; /** * 绘制圆形 * @param context 需要进行绘制的画布 * @param mouseX 当前鼠标x轴坐标 * @param mouseY 当前鼠标y轴坐标 * @param mouseStartX 鼠标按下时的x轴坐标 * @param mouseStartY 鼠标按下时的y轴坐标 * @param borderWidth 边框宽度 * @param color 边框颜色 * @param dotOptions 控制是否绘制操作节点 */ export declare function drawCircle(context: CanvasRenderingContext2D, mouseX: number, mouseY: number, mouseStartX: number, mouseStartY: number, borderWidth: number, color: string, dotOptions?: DrawCircleDotOptions): void; /** * 根据外接矩形重新绘制圆形/椭圆 */ export declare const redrawCircle: (context: CanvasRenderingContext2D, ellipse: EllipseBounds, borderWidth: number, color: string, dotOptions?: DrawCircleDotOptions) => void; /** * 判断鼠标是否位于圆/椭圆的边框上 * @param mouseX 鼠标x轴坐标 * @param mouseY 鼠标y轴坐标 * @param ellipse 圆的外接矩形信息 * @param borderWidth 边框宽度 * @param borderBuffer 额外容错范围,避免必须精准落在边框上才触发 */ export declare function isMouseOnCircleBorder(mouseX: number, mouseY: number, ellipse: EllipseBounds, borderWidth: number, borderBuffer?: number): boolean; /** * 判断鼠标是否位于圆/椭圆的操作节点上 */ export declare const getMousePositionOnCircleHandle: (mouseX: number, mouseY: number, ellipse: EllipseBounds, dotRadius: number) => number | null; /** * 根据节点索引获取圆形的缩放方向 */ export declare const getCircleHandleCursor: (index: number) => string | null; /** * 根据节点缩放圆/椭圆 */ export declare const resizeEllipse: (originalX: number, originalY: number, originalWidth: number, originalHeight: number, handleIndex: number, newMouseX: number, newMouseY: number) => EllipseBounds; /** * 判断鼠标是否处于圆/椭圆内部 */ export declare const isMouseInsideEllipse: (mouseX: number, mouseY: number, ellipse: EllipseBounds) => boolean; export {};