SRadialGradient.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { SGradient, SPoint } from "./";
  2. /**
  3. * 放射性渐变
  4. *
  5. * @author 庞利祥(sybotan@126.com)
  6. */
  7. export class SRadialGradient extends SGradient {
  8. /** 开始圆形半径 */
  9. r1: number;
  10. /** 结束圆形半径 */
  11. r2: number;
  12. /**
  13. * 构造函数
  14. *
  15. * @param start 开始圆形坐标
  16. * @param r1 开始圆形半径
  17. * @param end 结束圆形坐标
  18. * @param r2 结束圆形半径
  19. */
  20. constructor(start: SPoint, r1: number, end: SPoint, r2: number);
  21. /**
  22. * 构造函数
  23. *
  24. * @param x1 开始圆形X坐标
  25. * @param y1 开始圆形Y坐标
  26. * @param r1 开始圆形半径
  27. * @param x2 结束圆形X坐标
  28. * @param y2 结束圆形Y坐标
  29. * @param r2 结束圆形半径
  30. */
  31. constructor(
  32. x1: number,
  33. y1: number,
  34. r1: number,
  35. x2: number,
  36. y2: number,
  37. r2: number
  38. );
  39. /**
  40. * 构造函数(重载实现)
  41. *
  42. * @param x1 开始圆形X坐标 | 开始圆形坐标
  43. * @param y1 开始圆形Y坐标 | 开始圆形半径
  44. * @param r1 开始圆形半径 | 结束圆形坐标
  45. * @param x2 结束圆形X坐标 | 结束圆形半径
  46. * @param y2 结束圆形Y坐标
  47. * @param r2 结束圆形半径
  48. */
  49. constructor(
  50. x1: number | SPoint,
  51. y1: number,
  52. r1: number | SPoint,
  53. x2: number,
  54. y2?: number,
  55. r2?: number
  56. ) {
  57. super();
  58. if (x1 instanceof SPoint && r1 instanceof SPoint) {
  59. this.start = new SPoint(x1);
  60. this.end = new SPoint(r1);
  61. this.r1 = y1;
  62. this.r2 = x2;
  63. } else {
  64. this.start = new SPoint(x1 as number, y1 as number);
  65. this.end = new SPoint(x2 as number, y2 as number);
  66. this.r1 = r1 as number;
  67. this.r2 = r2 as number;
  68. }
  69. } // Constructor()
  70. } // Class SRadialGradient