UNPKG

skia-path2d

Version:

Extract the core code related to Path2D, PathStrore, and isPointInPath from Skia and rewrite it with typescript

54 lines (52 loc) 2 kB
/** * 端点坐标转中心点坐标 * @param x1 起点坐标x * @param y1 起点坐标y * @param x2 终点坐标x * @param y2 终点坐标y * @param fa 大弧标志,如果选择跨度小于或等于 180 度的弧,则为 0,如果选择跨度大于 180 度的弧,则为 1。 * @param fs 扫描标志,如果连接中心和圆弧的线扫描的角度减小,则为 0,如果扫描的角度增加,则为 1。 * @param rx 椭圆弧的x轴半径。 * @param ry ry 椭圆弧的y轴半径。 * @param phi 椭圆的旋转角度,以弧度为单位。默认为0。 * @returns */ export declare function endpoint_to_center(x1: number, y1: number, x2: number, y2: number, fa: boolean | number, fs: boolean | number, rx: number, ry: number, phi: number): { rx: number; ry: number; cx: number; cy: number; theta1: number; theta2: number; dtheta: number; }; /*** * 点在椭圆上xAxisRotation处,再旋转至theta处,返回该点坐标 */ export declare function pointOnEllipse(cx: number, cy: number, rx: number, ry: number, xAxisRotation: number, theta: number): { x: number; y: number; }; /** * 四分之一椭圆弧转贝塞尔曲线段 * @param cx * @param cy * @param rx * @param ry * @param theta1 * @param theta2 */ export declare function quarterArcToCubicBezier(cx: number, cy: number, rx: number, ry: number, xAxisRotation: number, theta1: number, theta2: number): number[]; /** * svg A命令的椭圆弧转细分成贝塞尔曲线 * @param x1 * @param y1 * @param x2 * @param y2 * @param _rx * @param _ry * @param xAxisRotation * @param largeArcFlag * @param sweepFlag */ export declare function ellipseArcToCubicBezier(x1: number, y1: number, x2: number, y2: number, _rx: number, _ry: number, xAxisRotation: number, largeArcFlag: boolean, sweepFlag: boolean, callback?: (x0: number, y0: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number, index: number) => void): number[];