SRadialGradient.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. import { SGradient, SPoint } from "./";
  2. /**
  3. * 放射性渐变
  4. *
  5. * @author 庞利祥(sybotan@126.com)
  6. */
  7. export class SRadialGradient extends SGradient {
  8. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  9. // 属性定义
  10. /** 开始圆形坐标 */
  11. start = new SPoint();
  12. /** 开始圆形半径 */
  13. r1: number;
  14. /** 结束圆形坐标 */
  15. end = new SPoint();
  16. /** 结束圆形半径 */
  17. r2: number;
  18. /** 开始圆形X坐标 */
  19. get x1(): number {
  20. return this.start.x;
  21. } // Get x1
  22. set x1(value: number) {
  23. this.start.x = value;
  24. } // Set x1
  25. /** 开始圆形Y坐标 */
  26. get y1(): number {
  27. return this.start.y;
  28. } // Get y1
  29. set y1(value: number) {
  30. this.start.y = value;
  31. } // Set y1
  32. /** 结束圆形X坐标 */
  33. get x2(): number {
  34. return this.end.x;
  35. } // Get x2
  36. set x2(value: number) {
  37. this.end.x = value;
  38. } // Set x2
  39. /** 结束圆形Y坐标 */
  40. get y2(): number {
  41. return this.end.y;
  42. } // Get y2
  43. set y2(value: number) {
  44. this.end.y = value;
  45. } // Set y2
  46. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  47. // 构造函数
  48. /**
  49. * 构造函数
  50. *
  51. * @param start 开始圆形坐标
  52. * @param r1 开始圆形半径
  53. * @param end 结束圆形坐标
  54. * @param r2 结束圆形半径
  55. */
  56. constructor(start: SPoint, r1: number, end: SPoint, r2: number);
  57. /**
  58. * 构造函数
  59. *
  60. * @param x1 开始圆形X坐标
  61. * @param y1 开始圆形Y坐标
  62. * @param r1 开始圆形半径
  63. * @param x2 结束圆形X坐标
  64. * @param y2 结束圆形Y坐标
  65. * @param r2 结束圆形半径
  66. */
  67. constructor(
  68. x1: number,
  69. y1: number,
  70. r1: number,
  71. x2: number,
  72. y2: number,
  73. r2: number
  74. );
  75. /**
  76. * 构造函数(重载实现)
  77. *
  78. * @param x1 开始圆形X坐标 | 开始圆形坐标
  79. * @param y1 开始圆形Y坐标 | 开始圆形半径
  80. * @param r1 开始圆形半径 | 结束圆形坐标
  81. * @param x2 结束圆形X坐标 | 结束圆形半径
  82. * @param y2 结束圆形Y坐标
  83. * @param r2 结束圆形半径
  84. */
  85. constructor(
  86. x1: number | SPoint,
  87. y1: number,
  88. r1: number | SPoint,
  89. x2: number,
  90. y2?: number,
  91. r2?: number
  92. ) {
  93. super();
  94. if (x1 instanceof SPoint && r1 instanceof SPoint) {
  95. this.start = new SPoint(x1);
  96. this.end = new SPoint(r1);
  97. this.r1 = y1;
  98. this.r2 = x2;
  99. } else {
  100. this.start = new SPoint(x1 as number, y1 as number);
  101. this.end = new SPoint(x2 as number, y2 as number);
  102. this.r1 = r1 as number;
  103. this.r2 = r2 as number;
  104. }
  105. } // Constructor()
  106. /**
  107. * 设置开始圆形坐标
  108. *
  109. * @param x X坐标
  110. * @param y Y坐标
  111. */
  112. setStart(x: number, y: number): void {
  113. this.start.x = x;
  114. this.start.y = y;
  115. } // Function setStart()
  116. /**
  117. * 设置结束圆形坐标
  118. *
  119. * @param x X坐标
  120. * @param y Y坐标
  121. */
  122. setEnd(x: number, y: number): void {
  123. this.end.x = x;
  124. this.end.y = y;
  125. } // Function setEnd()
  126. } // Class SRadialGradient