import { SGradient, SPoint } from "./"; /** * 放射性渐变 * * @author 庞利祥(sybotan@126.com) */ export class SRadialGradient extends SGradient { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 属性定义 /** 开始圆形坐标 */ start = new SPoint(); /** 开始圆形半径 */ r1: number; /** 结束圆形坐标 */ end = new SPoint(); /** 结束圆形半径 */ r2: number; /** 开始圆形X坐标 */ get x1(): number { return this.start.x; } // Get x1 set x1(value: number) { this.start.x = value; } // Set x1 /** 开始圆形Y坐标 */ get y1(): number { return this.start.y; } // Get y1 set y1(value: number) { this.start.y = value; } // Set y1 /** 结束圆形X坐标 */ get x2(): number { return this.end.x; } // Get x2 set x2(value: number) { this.end.x = value; } // Set x2 /** 结束圆形Y坐标 */ get y2(): number { return this.end.y; } // Get y2 set y2(value: number) { this.end.y = value; } // Set y2 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 构造函数 /** * 构造函数 * * @param start 开始圆形坐标 * @param r1 开始圆形半径 * @param end 结束圆形坐标 * @param r2 结束圆形半径 */ constructor(start: SPoint, r1: number, end: SPoint, r2: number); /** * 构造函数 * * @param x1 开始圆形X坐标 * @param y1 开始圆形Y坐标 * @param r1 开始圆形半径 * @param x2 结束圆形X坐标 * @param y2 结束圆形Y坐标 * @param r2 结束圆形半径 */ constructor( x1: number, y1: number, r1: number, x2: number, y2: number, r2: number ); /** * 构造函数(重载实现) * * @param x1 开始圆形X坐标 | 开始圆形坐标 * @param y1 开始圆形Y坐标 | 开始圆形半径 * @param r1 开始圆形半径 | 结束圆形坐标 * @param x2 结束圆形X坐标 | 结束圆形半径 * @param y2 结束圆形Y坐标 * @param r2 结束圆形半径 */ constructor( x1: number | SPoint, y1: number, r1: number | SPoint, x2: number, y2?: number, r2?: number ) { super(); if (x1 instanceof SPoint && r1 instanceof SPoint) { this.start = new SPoint(x1); this.end = new SPoint(r1); this.r1 = y1; this.r2 = x2; } else { this.start = new SPoint(x1 as number, y1 as number); this.end = new SPoint(x2 as number, y2 as number); this.r1 = r1 as number; this.r2 = r2 as number; } } // Constructor() /** * 设置开始圆形坐标 * * @param x X坐标 * @param y Y坐标 */ setStart(x: number, y: number): void { this.start.x = x; this.start.y = y; } // Function setStart() /** * 设置结束圆形坐标 * * @param x X坐标 * @param y Y坐标 */ setEnd(x: number, y: number): void { this.end.x = x; this.end.y = y; } // Function setEnd() } // Class SRadialGradient