vislite 1.12.0 → 1.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +408 -403
  3. package/LICENSE +20 -20
  4. package/README-en.md +245 -245
  5. package/README.md +245 -245
  6. package/bin/formatArgv.js +30 -30
  7. package/bin/help.js +17 -17
  8. package/bin/run +21 -21
  9. package/bin/skills.js +26 -26
  10. package/lib/BarLayout/index.es.js +348 -348
  11. package/lib/Buffer/index.es.js +34 -34
  12. package/lib/Canvas/index.es.js +804 -804
  13. package/lib/Cardinal/index.es.js +89 -89
  14. package/lib/Eoap/index.es.js +32 -32
  15. package/lib/Hermite/index.es.js +34 -34
  16. package/lib/MapCoordinate/index.es.js +199 -199
  17. package/lib/Matrix4/index.es.js +123 -123
  18. package/lib/Mercator/index.es.js +18 -18
  19. package/lib/PieLayout/index.es.js +115 -115
  20. package/lib/RawCanvas/index.es.js +736 -736
  21. package/lib/SVG/index.es.js +626 -626
  22. package/lib/Shader/index.es.js +34 -34
  23. package/lib/Texture/index.es.js +52 -52
  24. package/lib/TreeLayout/index.es.js +301 -301
  25. package/lib/animation/index.es.js +2 -2
  26. package/lib/assemble/index.es.js +19 -19
  27. package/lib/getLoopColors/index.es.js +34 -34
  28. package/lib/getWebGLContext/index.es.js +61 -61
  29. package/lib/index.umd.js +2797 -2797
  30. package/lib/index.umd.min.js +1 -1
  31. package/lib/initOption/index.es.js +5 -5
  32. package/lib/mergeOption/index.es.js +34 -34
  33. package/lib/move/index.es.js +6 -6
  34. package/lib/rotate/index.es.js +6 -6
  35. package/lib/ruler/index.es.js +136 -136
  36. package/lib/scale/index.es.js +5 -5
  37. package/minialipay/ui-canvas/drawImage.js +35 -35
  38. package/minialipay/ui-canvas/index.acss +4 -4
  39. package/minialipay/ui-canvas/index.axml +3 -3
  40. package/minialipay/ui-canvas/index.d.ts +1 -1
  41. package/minialipay/ui-canvas/index.js +100 -100
  42. package/minialipay/ui-canvas/index.json +6 -6
  43. package/miniprogram/ui-canvas/drawImage.js +35 -35
  44. package/miniprogram/ui-canvas/index.js +125 -125
  45. package/miniprogram/ui-canvas/index.json +4 -4
  46. package/miniprogram/ui-canvas/index.wxml +4 -4
  47. package/miniprogram/ui-canvas/index.wxss +5 -5
  48. package/package/BarLayout/index.ts +2 -2
  49. package/package/Buffer/index.ts +2 -2
  50. package/package/Canvas/index.ts +2 -2
  51. package/package/Cardinal/index.ts +2 -2
  52. package/package/Eoap/index.ts +2 -2
  53. package/package/Hermite/index.ts +2 -2
  54. package/package/MapCoordinate/index.ts +2 -2
  55. package/package/Matrix4/index.ts +2 -2
  56. package/package/Mercator/index.ts +2 -2
  57. package/package/PieLayout/index.ts +2 -2
  58. package/package/RawCanvas/index.ts +2 -2
  59. package/package/SVG/index.ts +2 -2
  60. package/package/Shader/index.ts +2 -2
  61. package/package/Texture/index.ts +2 -2
  62. package/package/TreeLayout/index.ts +2 -2
  63. package/package/animation/index.ts +5 -5
  64. package/package/assemble/index.ts +2 -2
  65. package/package/getLoopColors/index.ts +2 -2
  66. package/package/getWebGLContext/index.ts +40 -40
  67. package/package/index.ts +84 -84
  68. package/package/initOption/index.ts +2 -2
  69. package/package/mergeOption/index.ts +2 -2
  70. package/package/move/index.ts +2 -2
  71. package/package/rotate/index.ts +2 -2
  72. package/package/ruler/index.ts +2 -2
  73. package/package/scale/index.ts +2 -2
  74. package/package/throttle/index.ts +2 -2
  75. package/package.json +79 -79
  76. package/skills/vislite-lib/BarLayout.md +117 -117
  77. package/skills/vislite-lib/Canvas.md +183 -183
  78. package/skills/vislite-lib/Interpolation.md +129 -129
  79. package/skills/vislite-lib/Matrix.md +174 -174
  80. package/skills/vislite-lib/PieLayout.md +131 -131
  81. package/skills/vislite-lib/Projections.md +158 -158
  82. package/skills/vislite-lib/SKILL.md +179 -179
  83. package/skills/vislite-lib/SVG.md +137 -137
  84. package/skills/vislite-lib/TreeLayout.md +176 -176
  85. package/skills/vislite-lib/Utilities.md +261 -261
  86. package/skills/vislite-lib/WebGL.md +106 -106
  87. package/skills/vislite-lib/minialipay/ui-canvas.md +95 -95
  88. package/skills/vislite-lib/miniprogram/ui-canvas.md +98 -98
  89. package/skills/vislite-lib/uniapp/ui-canvas.md +113 -113
  90. package/src/Canvas.ts +89 -89
  91. package/src/Eoap.ts +66 -66
  92. package/src/Matrix4/index.ts +84 -84
  93. package/src/Matrix4/move.ts +12 -12
  94. package/src/Matrix4/rotate.ts +15 -15
  95. package/src/Matrix4/scale.ts +11 -11
  96. package/src/Matrix4/transform.ts +64 -64
  97. package/src/Mercator.ts +27 -27
  98. package/src/SVG.ts +86 -86
  99. package/src/common/assemble.ts +30 -30
  100. package/src/common/canvas/arc.ts +51 -51
  101. package/src/common/canvas/config.ts +176 -176
  102. package/src/common/canvas/default.ts +64 -64
  103. package/src/common/canvas/gradient.ts +31 -31
  104. package/src/common/canvas/index.ts +189 -189
  105. package/src/common/canvas/painter.ts +475 -475
  106. package/src/common/canvas/texts.ts +18 -18
  107. package/src/common/map/getBoundary.ts +15 -15
  108. package/src/common/map/tool.ts +29 -29
  109. package/src/common/option.ts +31 -31
  110. package/src/common/setStyle.ts +5 -5
  111. package/src/common/svg/config.ts +213 -213
  112. package/src/common/svg/default.ts +29 -29
  113. package/src/common/svg/gradient.ts +53 -53
  114. package/src/common/svg/index.ts +420 -420
  115. package/src/common/svg/tool.ts +51 -51
  116. package/src/common/tree/index.ts +25 -25
  117. package/src/common/tree/toInnerTree.ts +61 -61
  118. package/src/common/tree/toPlainTree.ts +135 -135
  119. package/src/common/type.ts +26 -26
  120. package/src/common/webgl/buffer.ts +79 -79
  121. package/src/common/webgl/getWebGLContext.ts +45 -45
  122. package/src/common/webgl/shader.ts +75 -75
  123. package/src/common/webgl/texture.ts +98 -98
  124. package/src/coordinate/MapCoordinate.ts +80 -80
  125. package/src/getLoopColors.ts +42 -42
  126. package/src/interpolation/Cardinal.ts +110 -110
  127. package/src/interpolation/Hermite.ts +65 -65
  128. package/src/layout/BarLayout.ts +249 -249
  129. package/src/layout/PieLayout.ts +146 -146
  130. package/src/layout/TreeLayout.ts +200 -200
  131. package/src/move.ts +7 -7
  132. package/src/rotate.ts +7 -7
  133. package/src/ruler.ts +209 -209
  134. package/src/scale.ts +6 -6
  135. package/types/Bar.d.ts +91 -91
  136. package/types/BarConfig.d.ts +4 -4
  137. package/types/BarLayout.d.ts +48 -48
  138. package/types/BarOption.d.ts +31 -31
  139. package/types/Buffer.d.ts +30 -30
  140. package/types/Canvas.d.ts +379 -379
  141. package/types/CanvasConfig.d.ts +61 -61
  142. package/types/CanvasOption.d.ts +13 -13
  143. package/types/CanvasOpts.d.ts +9 -9
  144. package/types/Cardinal.d.ts +20 -20
  145. package/types/Gradient.d.ts +20 -20
  146. package/types/Hermite.d.ts +25 -25
  147. package/types/Map.d.ts +9 -9
  148. package/types/MapConfig.d.ts +27 -27
  149. package/types/MapCoordinate.d.ts +22 -22
  150. package/types/Matrix4.d.ts +79 -79
  151. package/types/Pie.d.ts +73 -73
  152. package/types/PieConfig.d.ts +26 -26
  153. package/types/PieLayout.d.ts +40 -40
  154. package/types/PieOption.d.ts +21 -21
  155. package/types/SVG.d.ts +282 -282
  156. package/types/SVGConfig.d.ts +54 -54
  157. package/types/Shader.d.ts +22 -22
  158. package/types/Texture.d.ts +22 -22
  159. package/types/Tree.d.ts +74 -74
  160. package/types/TreeConfig.d.ts +52 -52
  161. package/types/TreeLayout.d.ts +71 -71
  162. package/types/TreeOption.d.ts +48 -48
  163. package/types/animation.d.ts +26 -26
  164. package/types/assemble.d.ts +14 -14
  165. package/types/getLoopColors.d.ts +13 -13
  166. package/types/getWebGLContext.d.ts +7 -7
  167. package/types/index.d.ts +220 -220
  168. package/types/module.d.ts +110 -110
  169. package/types/move.d.ts +15 -15
  170. package/types/option.d.ts +12 -12
  171. package/types/painterConfig.d.ts +14 -14
  172. package/types/rotate.d.ts +15 -15
  173. package/types/ruler.d.ts +24 -24
  174. package/types/scale.d.ts +15 -15
  175. package/types/throttle.d.ts +6 -6
  176. package/types/ui-canvas.d.ts +4 -4
  177. package/types/uni-canvas.d.ts +3 -3
  178. package/uni-app/drawImage.js +19 -19
  179. package/uni-app/ui-canvas.vue +295 -295
@@ -1,62 +1,62 @@
1
- import { arcCapType, textAlignType, textBaselineType, lineCapType, lineJoinType } from './painterConfig'
2
-
3
- /**
4
- * Canvas绘图配置类型定义
5
- * 用于配置Canvas绘图的各种样式和属性
6
- */
7
- export default interface CanvasConfigType {
8
-
9
- /** 填充色或图案,默认"#000" */
10
- fillStyle?: string | CanvasGradient
11
-
12
- /** 轮廓色或图案,默认"#000" */
13
- strokeStyle?: string | CanvasGradient
14
-
15
- /** 线条宽度,默认1(单位px) */
16
- lineWidth?: number
17
-
18
- /** 线的端点类型,默认"butt"平直边缘(还有"round"半圆和"square"矩形) */
19
- lineCap?: lineCapType
20
-
21
- /** 线的拐角连接方式,默认"miter"连接处边缘延长相接(还有"bevel"对角线斜角和"round"圆) */
22
- lineJoin?: lineJoinType
23
-
24
- /**
25
- * 设置线条虚线,默认为[]表示使用实线绘制
26
- * 值应该是一个数组,格式:[实线长,虚线长,实线长 ...],数组长度任意,会自动循环
27
- */
28
- lineDash?: Array<number>
29
-
30
- /** 文字水平对齐方式,默认"left"左对齐(还有"center"居中和"right"右对齐) */
31
- textAlign?: textAlignType
32
-
33
- /** 文字垂直对齐方式,默认"middle"垂直居中(还有"top"上对齐和"bottom"下对齐) */
34
- textBaseline?: textBaselineType
35
-
36
- /** 阴影的模糊系数,默认0,也就是无阴影 */
37
- shadowBlur?: number
38
-
39
- /** 阴影的颜色 */
40
- shadowColor?: string | CanvasGradient
41
-
42
- /** 文字大小,默认16 */
43
- fontSize?: number
44
-
45
- /** 字体,默认"sans-serif" */
46
- fontFamily?: string
47
-
48
- /** 字重,默认400 */
49
- fontWeight?: number
50
-
51
- /** 字类型,默认"normal" */
52
- fontStyle?: string
53
-
54
- /** 圆弧开始端闭合方式,默认"butt"直线闭合(还有"round"圆帽闭合,"-round"反圆帽闭合) */
55
- arcStartCap?: arcCapType
56
-
57
- /** 圆弧结束端闭合方式,默认"butt"直线闭合(还有"round"圆帽闭合,"-round"反圆帽闭合) */
58
- arcEndCap?: arcCapType
59
-
60
- /** 矩形圆角半径 */
61
- rectRadius?: Array<number>
1
+ import { arcCapType, textAlignType, textBaselineType, lineCapType, lineJoinType } from './painterConfig'
2
+
3
+ /**
4
+ * Canvas绘图配置类型定义
5
+ * 用于配置Canvas绘图的各种样式和属性
6
+ */
7
+ export default interface CanvasConfigType {
8
+
9
+ /** 填充色或图案,默认"#000" */
10
+ fillStyle?: string | CanvasGradient
11
+
12
+ /** 轮廓色或图案,默认"#000" */
13
+ strokeStyle?: string | CanvasGradient
14
+
15
+ /** 线条宽度,默认1(单位px) */
16
+ lineWidth?: number
17
+
18
+ /** 线的端点类型,默认"butt"平直边缘(还有"round"半圆和"square"矩形) */
19
+ lineCap?: lineCapType
20
+
21
+ /** 线的拐角连接方式,默认"miter"连接处边缘延长相接(还有"bevel"对角线斜角和"round"圆) */
22
+ lineJoin?: lineJoinType
23
+
24
+ /**
25
+ * 设置线条虚线,默认为[]表示使用实线绘制
26
+ * 值应该是一个数组,格式:[实线长,虚线长,实线长 ...],数组长度任意,会自动循环
27
+ */
28
+ lineDash?: Array<number>
29
+
30
+ /** 文字水平对齐方式,默认"left"左对齐(还有"center"居中和"right"右对齐) */
31
+ textAlign?: textAlignType
32
+
33
+ /** 文字垂直对齐方式,默认"middle"垂直居中(还有"top"上对齐和"bottom"下对齐) */
34
+ textBaseline?: textBaselineType
35
+
36
+ /** 阴影的模糊系数,默认0,也就是无阴影 */
37
+ shadowBlur?: number
38
+
39
+ /** 阴影的颜色 */
40
+ shadowColor?: string | CanvasGradient
41
+
42
+ /** 文字大小,默认16 */
43
+ fontSize?: number
44
+
45
+ /** 字体,默认"sans-serif" */
46
+ fontFamily?: string
47
+
48
+ /** 字重,默认400 */
49
+ fontWeight?: number
50
+
51
+ /** 字类型,默认"normal" */
52
+ fontStyle?: string
53
+
54
+ /** 圆弧开始端闭合方式,默认"butt"直线闭合(还有"round"圆帽闭合,"-round"反圆帽闭合) */
55
+ arcStartCap?: arcCapType
56
+
57
+ /** 圆弧结束端闭合方式,默认"butt"直线闭合(还有"round"圆帽闭合,"-round"反圆帽闭合) */
58
+ arcEndCap?: arcCapType
59
+
60
+ /** 矩形圆角半径 */
61
+ rectRadius?: Array<number>
62
62
  }
@@ -1,14 +1,14 @@
1
- import CanvasOptsType from "./CanvasOpts"
2
-
3
- export default interface CanvasOptionType extends CanvasOptsType {
4
-
5
- /**
6
- * 缩放倍率,默认2
7
- */
8
- scale?: number
9
-
10
- /**
11
- * 是否支持区域管理,默认true
12
- */
13
- region?: boolean
1
+ import CanvasOptsType from "./CanvasOpts"
2
+
3
+ export default interface CanvasOptionType extends CanvasOptsType {
4
+
5
+ /**
6
+ * 缩放倍率,默认2
7
+ */
8
+ scale?: number
9
+
10
+ /**
11
+ * 是否支持区域管理,默认true
12
+ */
13
+ region?: boolean
14
14
  }
@@ -1,10 +1,10 @@
1
- export default interface CanvasOptsType {
2
-
3
- // https://html.spec.whatwg.org/multipage/canvas.html#concept-canvas-will-read-frequently
4
- willReadFrequently?: boolean
5
-
6
- alpha?: boolean
7
-
8
- storage?: string
9
-
1
+ export default interface CanvasOptsType {
2
+
3
+ // https://html.spec.whatwg.org/multipage/canvas.html#concept-canvas-will-read-frequently
4
+ willReadFrequently?: boolean
5
+
6
+ alpha?: boolean
7
+
8
+ storage?: string
9
+
10
10
  }
@@ -1,21 +1,21 @@
1
- /**
2
- * Cardinal插值类型定义
3
- * 用于实现Cardinal插值算法,支持平滑曲线插值
4
- */
5
- export default interface CardinalType {
6
-
7
- /**
8
- * 设置插值点的位置
9
- * @param points 参数格式:[[x1, y1], [x2, y2], ... ],至少两个点
10
- * @returns 返回当前实例,支持链式调用
11
- */
12
- setP(points: number[][]): this
13
-
14
- /**
15
- * 根据x值计算并返回对应的y值
16
- * @param x 输入的x值
17
- * @returns 计算得到的y值
18
- */
19
- use(x: number): number
20
-
1
+ /**
2
+ * Cardinal插值类型定义
3
+ * 用于实现Cardinal插值算法,支持平滑曲线插值
4
+ */
5
+ export default interface CardinalType {
6
+
7
+ /**
8
+ * 设置插值点的位置
9
+ * @param points 参数格式:[[x1, y1], [x2, y2], ... ],至少两个点
10
+ * @returns 返回当前实例,支持链式调用
11
+ */
12
+ setP(points: number[][]): this
13
+
14
+ /**
15
+ * 根据x值计算并返回对应的y值
16
+ * @param x 输入的x值
17
+ * @returns 计算得到的y值
18
+ */
19
+ use(x: number): number
20
+
21
21
  }
@@ -1,21 +1,21 @@
1
- /**
2
- * 渐变类型定义
3
- * 用于创建和管理线性、径向等渐变效果
4
- */
5
- export default interface GradientType<T> {
6
-
7
- /**
8
- * 设置渐变颜色停止点
9
- * @param stop 停止点位置(0-1)
10
- * @param color 颜色值
11
- * @returns 返回当前实例,支持链式调用
12
- */
13
- setColor(stop: number, color: string): this
14
-
15
- /**
16
- * 获取渐变对象
17
- * @returns 返回渐变对象实例
18
- */
19
- value(): T
20
-
1
+ /**
2
+ * 渐变类型定义
3
+ * 用于创建和管理线性、径向等渐变效果
4
+ */
5
+ export default interface GradientType<T> {
6
+
7
+ /**
8
+ * 设置渐变颜色停止点
9
+ * @param stop 停止点位置(0-1)
10
+ * @param color 颜色值
11
+ * @returns 返回当前实例,支持链式调用
12
+ */
13
+ setColor(stop: number, color: string): this
14
+
15
+ /**
16
+ * 获取渐变对象
17
+ * @returns 返回渐变对象实例
18
+ */
19
+ value(): T
20
+
21
21
  }
@@ -1,26 +1,26 @@
1
- /**
2
- * Hermite插值类型定义
3
- * 用于实现Hermite插值算法,支持基于点位置和斜率的平滑曲线插值
4
- */
5
- export default interface HermiteType {
6
-
7
- /**
8
- * 设置插值点的位置和斜率
9
- * @param x1 左边点的x坐标
10
- * @param y1 左边点的y坐标
11
- * @param x2 右边点的x坐标
12
- * @param y2 右边点的y坐标
13
- * @param s1 左边点的斜率
14
- * @param s2 右边点的斜率
15
- * @returns 返回当前实例,支持链式调用
16
- */
17
- setP(x1: number, y1: number, x2: number, y2: number, s1: number, s2: number): this
18
-
19
- /**
20
- * 根据x值计算并返回对应的y值
21
- * @param x 输入的x值
22
- * @returns 计算得到的y值
23
- */
24
- use(x: number): number
25
-
1
+ /**
2
+ * Hermite插值类型定义
3
+ * 用于实现Hermite插值算法,支持基于点位置和斜率的平滑曲线插值
4
+ */
5
+ export default interface HermiteType {
6
+
7
+ /**
8
+ * 设置插值点的位置和斜率
9
+ * @param x1 左边点的x坐标
10
+ * @param y1 左边点的y坐标
11
+ * @param x2 右边点的x坐标
12
+ * @param y2 右边点的y坐标
13
+ * @param s1 左边点的斜率
14
+ * @param s2 右边点的斜率
15
+ * @returns 返回当前实例,支持链式调用
16
+ */
17
+ setP(x1: number, y1: number, x2: number, y2: number, s1: number, s2: number): this
18
+
19
+ /**
20
+ * 根据x值计算并返回对应的y值
21
+ * @param x 输入的x值
22
+ * @returns 计算得到的y值
23
+ */
24
+ use(x: number): number
25
+
26
26
  }
package/types/Map.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- export default interface MapType {
2
-
3
- /**
4
- * 返回该点的绘图坐标(特别需要注意,计算出来的位置是偏离中心点的距离)
5
- * @param λ 经纬度
6
- * @param φ
7
- */
8
- use(λ: number, φ: number): [number, number, number]
9
-
1
+ export default interface MapType {
2
+
3
+ /**
4
+ * 返回该点的绘图坐标(特别需要注意,计算出来的位置是偏离中心点的距离)
5
+ * @param λ 经纬度
6
+ * @param φ
7
+ */
8
+ use(λ: number, φ: number): [number, number, number]
9
+
10
10
  }
@@ -1,28 +1,28 @@
1
- export default interface MapConfigType {
2
-
3
- /**
4
- * 投影算法,默认Mercator,即墨卡托投影
5
- */
6
- api?: "Eoap" | "Mercator"
7
-
8
- /**
9
- * 地图宽
10
- */
11
- width?: number
12
-
13
- /**
14
- * 地图高
15
- */
16
- height?: number
17
-
18
- /**
19
- * 地图左上角横坐标
20
- */
21
- left?: number
22
-
23
- /**
24
- * 地图左上角枞坐标
25
- */
26
- top?: number
27
-
1
+ export default interface MapConfigType {
2
+
3
+ /**
4
+ * 投影算法,默认Mercator,即墨卡托投影
5
+ */
6
+ api?: "Eoap" | "Mercator"
7
+
8
+ /**
9
+ * 地图宽
10
+ */
11
+ width?: number
12
+
13
+ /**
14
+ * 地图高
15
+ */
16
+ height?: number
17
+
18
+ /**
19
+ * 地图左上角横坐标
20
+ */
21
+ left?: number
22
+
23
+ /**
24
+ * 地图左上角枞坐标
25
+ */
26
+ top?: number
27
+
28
28
  }
@@ -1,23 +1,23 @@
1
- import MapConfigType from './MapConfig'
2
-
3
- export default interface MapCoordinateType {
4
-
5
- /**
6
- * 修改配置
7
- * @param config
8
- */
9
- setConfig(config: MapConfigType): this
10
-
11
- /**
12
- * 地理数据
13
- * @param geos
14
- */
15
- setGeos(...geos: any[]): this
16
-
17
- /**
18
- * 返回该点的绘图坐标
19
- * @param λ 经纬度
20
- * @param φ
21
- */
22
- use(λ: number, φ: number): [number, number]
1
+ import MapConfigType from './MapConfig'
2
+
3
+ export default interface MapCoordinateType {
4
+
5
+ /**
6
+ * 修改配置
7
+ * @param config
8
+ */
9
+ setConfig(config: MapConfigType): this
10
+
11
+ /**
12
+ * 地理数据
13
+ * @param geos
14
+ */
15
+ setGeos(...geos: any[]): this
16
+
17
+ /**
18
+ * 返回该点的绘图坐标
19
+ * @param λ 经纬度
20
+ * @param φ
21
+ */
22
+ use(λ: number, φ: number): [number, number]
23
23
  }
@@ -1,80 +1,80 @@
1
- /**
2
- * 4x4矩阵类型定义
3
- * 用于实现3D变换矩阵的各种操作,包括平移、旋转、缩放等
4
- */
5
- export default interface Matrix4Type {
6
-
7
- /**
8
- * 获取当前矩阵的内部数值表示
9
- * @returns 返回4x4矩阵的16个元素,按列优先顺序排列
10
- */
11
- value(): number[]
12
-
13
- /**
14
- * 矩阵乘法运算
15
- * @param newMatrix4 要相乘的矩阵
16
- * @param flag 可选参数,表示相乘位置。默认为false,表示左乘(newMatrix4 * this);为true时表示右乘(this * newMatrix4)
17
- * @returns 返回当前实例,支持链式调用
18
- */
19
- multiply(newMatrix4: number[], flag?: boolean): this
20
-
21
- /**
22
- * 将变换矩阵应用于指定坐标点
23
- * @param x x坐标
24
- * @param y y坐标
25
- * @param z z坐标,可选,默认为0
26
- * @param w w坐标,可选,默认为1
27
- * @returns 变换后的四维坐标 [x', y', z', w']
28
- */
29
- use(x: number, y: number, z?: number, w?: number): [number, number, number, number]
30
-
31
- /**
32
- * 设置矩阵的初始值
33
- * @param initMatrix4 可选的初始矩阵值,如果不提供则使用单位矩阵
34
- * @returns 返回当前实例,支持链式调用
35
- */
36
- setValue(initMatrix4?: number[]): this
37
-
38
- /**
39
- * 沿指定向量方向平移
40
- * @param dis 平移距离
41
- * @param a 向量x分量
42
- * @param b 向量y分量
43
- * @param c 向量z分量,可选,默认为0
44
- * @returns 返回当前实例,支持链式调用
45
- */
46
- move(dis: number, a: number, b: number, c?: number): this
47
-
48
- /**
49
- * 以指定点为中心进行缩放
50
- * @param xTimes x方向缩放倍数
51
- * @param yTimes y方向缩放倍数
52
- * @param zTimes z方向缩放倍数
53
- * @param cx 中心点x坐标,可选,默认为0
54
- * @param cy 中心点y坐标,可选,默认为0
55
- * @param cz 中心点z坐标,可选,默认为0
56
- * @returns 返回当前实例,支持链式调用
57
- */
58
- scale(xTimes: number, yTimes: number, zTimes: number, cx?: number, cy?: number, cz?: number): this
59
-
60
- /**
61
- * 围绕指定射线旋转
62
- * @param deg 旋转角度(度)
63
- * @param a1 射线起点x坐标
64
- * @param b1 射线起点y坐标
65
- * @param c1 射线起点z坐标,可选
66
- * @param a2 射线终点x坐标,可选
67
- * @param b2 射线终点y坐标,可选
68
- * @param c2 射线终点z坐标,可选
69
- *
70
- * 参数说明:
71
- * 1)只设置a1和b1:表示在xoy平面围绕点(a1, b1)旋转
72
- * 2)设置三个点(不足六个点):表示围绕从原点出发的射线旋转
73
- * 3)设置六个点:表示围绕指定射线旋转
74
- *
75
- * 旋转方向由右手法则确定
76
- * @returns 返回当前实例,支持链式调用
77
- */
78
- rotate(deg: number, a1: number, b1: number, c1?: number, a2?: number, b2?: number, c2?: number): this
79
-
1
+ /**
2
+ * 4x4矩阵类型定义
3
+ * 用于实现3D变换矩阵的各种操作,包括平移、旋转、缩放等
4
+ */
5
+ export default interface Matrix4Type {
6
+
7
+ /**
8
+ * 获取当前矩阵的内部数值表示
9
+ * @returns 返回4x4矩阵的16个元素,按列优先顺序排列
10
+ */
11
+ value(): number[]
12
+
13
+ /**
14
+ * 矩阵乘法运算
15
+ * @param newMatrix4 要相乘的矩阵
16
+ * @param flag 可选参数,表示相乘位置。默认为false,表示左乘(newMatrix4 * this);为true时表示右乘(this * newMatrix4)
17
+ * @returns 返回当前实例,支持链式调用
18
+ */
19
+ multiply(newMatrix4: number[], flag?: boolean): this
20
+
21
+ /**
22
+ * 将变换矩阵应用于指定坐标点
23
+ * @param x x坐标
24
+ * @param y y坐标
25
+ * @param z z坐标,可选,默认为0
26
+ * @param w w坐标,可选,默认为1
27
+ * @returns 变换后的四维坐标 [x', y', z', w']
28
+ */
29
+ use(x: number, y: number, z?: number, w?: number): [number, number, number, number]
30
+
31
+ /**
32
+ * 设置矩阵的初始值
33
+ * @param initMatrix4 可选的初始矩阵值,如果不提供则使用单位矩阵
34
+ * @returns 返回当前实例,支持链式调用
35
+ */
36
+ setValue(initMatrix4?: number[]): this
37
+
38
+ /**
39
+ * 沿指定向量方向平移
40
+ * @param dis 平移距离
41
+ * @param a 向量x分量
42
+ * @param b 向量y分量
43
+ * @param c 向量z分量,可选,默认为0
44
+ * @returns 返回当前实例,支持链式调用
45
+ */
46
+ move(dis: number, a: number, b: number, c?: number): this
47
+
48
+ /**
49
+ * 以指定点为中心进行缩放
50
+ * @param xTimes x方向缩放倍数
51
+ * @param yTimes y方向缩放倍数
52
+ * @param zTimes z方向缩放倍数
53
+ * @param cx 中心点x坐标,可选,默认为0
54
+ * @param cy 中心点y坐标,可选,默认为0
55
+ * @param cz 中心点z坐标,可选,默认为0
56
+ * @returns 返回当前实例,支持链式调用
57
+ */
58
+ scale(xTimes: number, yTimes: number, zTimes: number, cx?: number, cy?: number, cz?: number): this
59
+
60
+ /**
61
+ * 围绕指定射线旋转
62
+ * @param deg 旋转角度(度)
63
+ * @param a1 射线起点x坐标
64
+ * @param b1 射线起点y坐标
65
+ * @param c1 射线起点z坐标,可选
66
+ * @param a2 射线终点x坐标,可选
67
+ * @param b2 射线终点y坐标,可选
68
+ * @param c2 射线终点z坐标,可选
69
+ *
70
+ * 参数说明:
71
+ * 1)只设置a1和b1:表示在xoy平面围绕点(a1, b1)旋转
72
+ * 2)设置三个点(不足六个点):表示围绕从原点出发的射线旋转
73
+ * 3)设置六个点:表示围绕指定射线旋转
74
+ *
75
+ * 旋转方向由右手法则确定
76
+ * @returns 返回当前实例,支持链式调用
77
+ */
78
+ rotate(deg: number, a1: number, b1: number, c1?: number, a2?: number, b2?: number, c2?: number): this
79
+
80
80
  }