/** * 多边形 */ import { Polyline } from "./line"; import { Graph, IPoint, Point } from "./core"; export default class Polygon extends Polyline { readonly points: Point[]; constructor(points?: IPoint[]); /** * 给定中心点 最大半径 以及 满分 跟多个分值绘制一个多边形 * @param o 多边形定位的圆心 * @param r 多边形满分对应的半径 * @param maxScore 满分分值 * @param scores 垂直方向分值为起始点 顺时针增加分数点 * @param offset 起始偏移角度 默认为0 */ score(o: Point, r: number, maxScore: number, scores: Array, offset?: number): this; /** * 正多边形 * @param o 圆心坐标 * @param r 半径 圆心到多边形顶点的距离必须大于0 * @param quantity 多边形的边数 必须大于3 * @param start 多边形起始角度 以垂直方向为零 顺时针增长 取值范围为[0, 360) */ equilateral(o: IPoint, r: number, quantity: number, start?: number): this; linejoin(type: 'miter' | 'round' | 'bevel'): this; radius(r: number): this; static equilateral(o: IPoint, r: number, quantity: number, start?: number): Polygon; } /** * 三角形 */ export declare class Triangle extends Polygon { constructor(point1: IPoint, point2: IPoint, point3: IPoint); /** * 正等边三角形 * @param o 三角形的中心位置 * @param r 中心位置到三个顶点的距离 * @param offsetAngle 起始点便宜角度 */ static equilateral({ x, y }: IPoint, r: number, offsetAngle?: number): Triangle; /** * 已知顶点坐标 底部中心点坐标 以及顶点两个边的夹角绘制三角形 * * @param vertex 顶点坐标 * @param len 顶点到对边中心点的距离 * @param angle 顶点两条边的夹角 * @param reverse 是否反向 默认否 */ static isosceles(vertex: Point, len: number, angle: number, reverse?: boolean): Triangle; /** * 绘制一个特殊的正三角形(不一定等边) * 该三角形的基于正等边三角形 每个点在原点跟三角形顶点连成的线上面移动 * 已知每个原点与三角形顶点之间的距离 vr (圆心o与正上顶点之间的距离) lr (圆心o与左下顶点之间的距离) rr (圆心o与右下顶点之间的距离) * @param {Point} o 圆心坐标点 * @param {number} vr 圆心o与正上顶点之间的距离 * @param {number} lr 圆心o与左下顶点之间的距离 * @param {number} rr 圆心o与右下顶点之间的距离 */ static regular({ o, vr, lr, rr }: any): Triangle; } /** * 矩形 包含正方形跟长方形 */ export declare class Rectangle extends Graph { readonly point: Point; readonly width: number; readonly height: number; /** * @param point 起始点 为矩形的左上角坐标点 * @param width 矩形宽度 * @param height 矩形高度 不设置默认为width */ constructor(point: IPoint, width: number, height?: number); getCenter(): Point; getPoints(): { lt: IPoint; rt: IPoint; lb: IPoint; rb: IPoint; }; radius(x: number, y?: number): this; protected attrs(): any; } export declare interface StarSetup { /** * size 个角的星星 */ readonly size: number; /** * 星星内角跟圆心的距离 */ readonly minR: number; /** * 星星顶角跟圆心的距离 */ readonly maxR: number; /** * 星星的圆心坐标 */ readonly o: IPoint; } export declare class Star extends Graph { readonly setup: StarSetup; readonly points: IPoint[]; constructor(setup: StarSetup); protected attrs(): any; }