vislite 0.1.0 → 0.2.0-alpha.7
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.
- package/AUTHORS.txt +6 -6
- package/CHANGELOG +24 -1
- package/LICENSE +20 -20
- package/README.md +53 -38
- package/lib/Canvas/index.umd.js +135 -46
- package/lib/Canvas/index.umd.min.js +7 -3
- package/lib/Cardinal/index.umd.js +6 -2
- package/lib/Cardinal/index.umd.min.js +6 -2
- package/lib/Eoap/index.umd.js +9 -5
- package/lib/Eoap/index.umd.min.js +6 -2
- package/lib/Hermite/index.umd.js +6 -2
- package/lib/Hermite/index.umd.min.js +6 -2
- package/lib/Matrix4/index.umd.js +6 -2
- package/lib/Matrix4/index.umd.min.js +6 -2
- package/lib/Mercator/index.umd.js +42 -0
- package/lib/Mercator/index.umd.min.js +15 -0
- package/lib/OralCanvas/index.es.js +124 -44
- package/lib/OralCanvas/index.es.min.js +7 -3
- package/lib/OralWebGL/index.es.js +567 -0
- package/lib/OralWebGL/index.es.min.js +15 -0
- package/lib/SVG/index.umd.js +16 -5
- package/lib/SVG/index.umd.min.js +7 -3
- package/lib/WebGL/index.umd.js +626 -0
- package/lib/WebGL/index.umd.min.js +15 -0
- package/lib/animation/index.umd.js +6 -2
- package/lib/animation/index.umd.min.js +6 -2
- package/lib/getLoopColors/index.umd.js +6 -2
- package/lib/getLoopColors/index.umd.min.js +6 -2
- package/lib/index.umd.js +1514 -863
- package/lib/index.umd.min.js +7 -3
- package/lib/rotate/index.umd.js +6 -2
- package/lib/rotate/index.umd.min.js +6 -2
- package/lib/ruler/index.umd.js +6 -2
- package/lib/ruler/index.umd.min.js +6 -2
- package/lib/viewHandler/index.umd.js +129 -0
- package/lib/viewHandler/index.umd.min.js +15 -0
- package/miniprogram/ui-canvas/index.js +18 -3
- package/miniprogram/ui-canvas/index.json +4 -4
- package/miniprogram/ui-canvas/index.wxml +4 -4
- package/miniprogram/ui-canvas/index.wxss +5 -5
- package/package/Canvas/index.ts +1 -1
- package/package/Cardinal/index.ts +2 -2
- package/package/Eoap/index.ts +2 -2
- package/package/Hermite/index.ts +2 -2
- package/package/Matrix4/index.ts +2 -2
- package/package/Mercator/index.ts +3 -0
- package/package/OralCanvas/index.ts +1 -1
- package/package/OralWebGL/index.ts +2 -0
- package/package/SVG/index.ts +2 -2
- package/package/WebGL/index.ts +2 -0
- package/package/animation/index.ts +2 -2
- package/package/getLoopColors/index.ts +2 -2
- package/package/index.ts +32 -9
- package/package/rotate/index.ts +2 -2
- package/package/ruler/index.ts +2 -2
- package/package/viewHandler/index.ts +3 -0
- package/package.json +11 -2
- package/src/Canvas.ts +10 -1
- package/src/Eoap.ts +5 -5
- package/src/Matrix4/index.ts +76 -76
- package/src/Matrix4/move.ts +12 -12
- package/src/Matrix4/rotate.ts +15 -15
- package/src/Matrix4/scale.ts +11 -11
- package/src/Matrix4/transform.ts +64 -64
- package/src/Mercator.ts +27 -0
- package/src/SVG.ts +1 -1
- package/src/WebGL.ts +53 -0
- package/src/animation.ts +99 -99
- package/src/common/assemble.ts +23 -0
- package/src/common/canvas/arc.ts +50 -50
- package/src/common/canvas/config.ts +7 -6
- package/src/common/canvas/index.ts +29 -28
- package/src/common/canvas/painter.ts +51 -8
- package/src/common/canvas/texts.ts +19 -0
- package/src/common/setStyle.ts +5 -5
- package/src/common/svg/config.ts +127 -126
- package/src/common/svg/index.ts +13 -3
- package/src/common/svg/tool.ts +43 -42
- package/src/common/webgl/buffer.ts +80 -0
- package/src/common/webgl/doDraw.ts +97 -0
- package/src/common/webgl/getColorFactory.ts +27 -0
- package/src/common/webgl/getShader.ts +62 -0
- package/src/common/webgl/getTexture.ts +12 -0
- package/src/common/webgl/getWebGLContext.ts +28 -0
- package/src/common/webgl/index.ts +212 -0
- package/src/common/webgl/shader.ts +76 -0
- package/src/common/webgl/texture.ts +99 -0
- package/src/getLoopColors.ts +42 -42
- package/src/interpolation/Cardinal.ts +91 -91
- package/src/interpolation/Hermite.ts +65 -65
- package/src/rotate.ts +7 -7
- package/src/ruler.ts +99 -99
- package/src/viewHandler.ts +140 -0
- package/types/Canvas.d.ts +220 -283
- package/types/CanvasConfig.d.ts +81 -0
- package/types/Cardinal.d.ts +13 -13
- package/types/Hermite.d.ts +18 -18
- package/types/Map.d.ts +10 -0
- package/types/Matrix4.d.ts +42 -42
- package/types/Object3D.d.ts +106 -0
- package/types/SVG.d.ts +210 -264
- package/types/SVGConfig.d.ts +59 -0
- package/types/Scene3D.d.ts +7 -0
- package/types/WebGL.d.ts +29 -0
- package/types/animation.d.ts +6 -6
- package/types/getLoopColors.d.ts +2 -2
- package/types/index.d.ts +70 -26
- package/types/rotate.d.ts +2 -2
- package/types/ruler.d.ts +2 -2
- package/types/viewHandler.d.ts +13 -0
- package/uni-app/ui-canvas.vue +94 -20
- package/types/Eoap.d.ts +0 -10
package/AUTHORS.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Authors ordered by first contribution.
|
|
2
|
-
|
|
3
|
-
zxl20070701 <1904314465@qq.com> <https://github.com/zxl20070701>
|
|
4
|
-
|
|
5
|
-
-----------------------------------------------------
|
|
6
|
-
We thank all of them for their contributions!
|
|
1
|
+
Authors ordered by first contribution.
|
|
2
|
+
|
|
3
|
+
zxl20070701 <1904314465@qq.com> <https://github.com/zxl20070701>
|
|
4
|
+
|
|
5
|
+
-----------------------------------------------------
|
|
6
|
+
We thank all of them for their contributions!
|
package/CHANGELOG
CHANGED
|
@@ -13,4 +13,27 @@ v0.1.0:
|
|
|
13
13
|
(包括:Hermite、Cardinal)
|
|
14
14
|
7、getLoopColors 循环色彩
|
|
15
15
|
8、animation 动画
|
|
16
|
-
9、ruler 刻度尺
|
|
16
|
+
9、ruler 刻度尺
|
|
17
|
+
v0.1.1:
|
|
18
|
+
date:2023-05-07
|
|
19
|
+
changes:
|
|
20
|
+
- 修复bug
|
|
21
|
+
1、解决uni-app和微信小程序组件ui-canvas未绑定事件点击报错问题
|
|
22
|
+
v0.2.0:
|
|
23
|
+
date:
|
|
24
|
+
changes:
|
|
25
|
+
- 修复bug
|
|
26
|
+
1、为解决this问题,同时优化参数内容,修改了uni-app和微信小程序组件ui-canvas事件语法
|
|
27
|
+
(对旧语法进行了向下兼容)
|
|
28
|
+
2、校对types中定义的类型信息
|
|
29
|
+
- 优化改造
|
|
30
|
+
1、针对Canvas和SVG的画笔配置config的属性名,统一使用小驼峰
|
|
31
|
+
(对旧语法进行了向下兼容)
|
|
32
|
+
- 新增功能
|
|
33
|
+
1、WebGL
|
|
34
|
+
(支持平台:H5)
|
|
35
|
+
2、Mercator 墨卡托投影
|
|
36
|
+
3、Canvas新增功能
|
|
37
|
+
* 多行文字:fillTexts、strokeTexts、fullTexts
|
|
38
|
+
* 获取原始画笔:getContext
|
|
39
|
+
4、uni-app平台的ui-canvas新增cover属性配置,支持非原生渲染模式
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) zxl20070701 走一步,再走一步
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) zxl20070701 走一步,再走一步
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,39 +1,54 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
1
|
+
- 开源不易,去 <i>[Github给个Star](https://github.com/oi-contrib/VISLite) </i>吧!
|
|
2
|
+
|
|
3
|
+
<img src='https://oi-contrib.github.io/VISLite/images/logo.png' height='300px'/>
|
|
4
|
+
|
|
5
|
+
<p>
|
|
6
|
+
<a href="https://www.npmjs.com/package/vislite?activeTab=versions">
|
|
7
|
+
<img src="https://img.shields.io/npm/dm/vislite.svg" alt="downloads">
|
|
8
|
+
</a>
|
|
9
|
+
<a href="https://www.npmjs.com/package/vislite">
|
|
10
|
+
<img src="https://img.shields.io/npm/v/vislite.svg" alt="Version">
|
|
11
|
+
</a>
|
|
12
|
+
<a href="https://github.com/oi-contrib/VISLite" target='_blank'>
|
|
13
|
+
<img alt="GitHub repo stars" src="https://img.shields.io/github/stars/oi-contrib/VISLite?style=social">
|
|
14
|
+
</a>
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
# VISLite
|
|
18
|
+
|
|
19
|
+
```VISLite```是一个使用```TypeScript```开发的可视化库。官网地址:[https://oi-contrib.github.io/VISLite](https://oi-contrib.github.io/VISLite)
|
|
20
|
+
|
|
21
|
+
主要提供了跨端的画布和计算,开发人员只需要按照文档的描述就可以非常简单的完成包括Web、uni-app、微信小程序等平台的可视化开发,除了必要的初始化差异,主要的业务代码部分不同端完全一致。
|
|
22
|
+
|
|
23
|
+
## 特点
|
|
24
|
+
|
|
25
|
+
- 灵活的引入方式:包括npm安装后按照```ES Module```或```CommonJS```规范引入或直接使用script标签的```CDN```方式。
|
|
26
|
+
- 按需引入或全局引入:支持源码TS引入、按需JS引入或者全量引入等多种方式。
|
|
27
|
+
- 简单与复杂共存:一方面我们提供了可视化需要的基础功能,你可以按照自己的需要组合使用;另一方面,为了加速开发,我们针对常见的可视化业务场景进行了封装,可以帮助你快速完成,你可以根据实际情况进行选择。
|
|
28
|
+
- 向下兼容:我们向你保证,始终向下兼容```(alpha和beta版本为测试版本,不包括)```,因此,无论何时,最新版本总是最好的选择。
|
|
29
|
+
|
|
30
|
+
## 需求墙
|
|
31
|
+
|
|
32
|
+
我们的目标是不断完善丰富可视化功能,非常希望获得你宝贵的建议和批评,无论任何想法,都可以给我们[留言](https://github.com/oi-contrib/VISLite/issues)告诉我们。
|
|
33
|
+
|
|
34
|
+
你所提的任何建议我们都会在最长一周内进行反馈说明。
|
|
35
|
+
|
|
36
|
+
## 更新日志
|
|
37
|
+
|
|
38
|
+
详见[正式版更新日志](./CHANGELOG),我们会在每次发布完正式版本后更新其内容。
|
|
39
|
+
|
|
40
|
+
## 下一步
|
|
41
|
+
|
|
42
|
+
我们会在这里列出接下来的工作重心:
|
|
43
|
+
|
|
44
|
+
- Canvas、SVG和WebGL画笔功能丰富
|
|
45
|
+
- 为加速开发,提供常用坐标系和布局
|
|
46
|
+
- 文档优化(提供可读性、丰富用例、补充教程)
|
|
47
|
+
|
|
48
|
+
给我们[留言](https://github.com/oi-contrib/VISLite/issues)告诉我们你希望快速扩展的功能,我们会优先你的建议考虑哦~
|
|
49
|
+
|
|
50
|
+
## 版权
|
|
51
|
+
|
|
52
|
+
MIT License
|
|
53
|
+
|
|
39
54
|
Copyright (c) [zxl20070701](https://zxl20070701.github.io/notebook/home.html) 走一步,再走一步
|
package/lib/Canvas/index.umd.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* VISLite JavaScript Library v0.
|
|
2
|
+
* VISLite JavaScript Library v0.2.0-alpha.7
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*
|
|
5
5
|
* Copyright zxl20070701
|
|
6
6
|
* Released under the MIT license
|
|
7
7
|
* https://zxl20070701.github.io/notebook/home.html
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* 本版本系测试版本,请认真阅读下述说明再使用:
|
|
10
|
+
*
|
|
11
|
+
*【测试版本细则】
|
|
12
|
+
* alpha:内测版本,仅供开发人员提供测试环境而发布,后续的修改可能极具破坏性,非有明确了解前请勿直接用于项目中
|
|
13
|
+
* beta:外测版本,正式发布前的确认测试,或者新功能紧急发布,一般可以直接用于实际项目,因为即使后续发现了问题,直接使用正式版即可,不会有破坏性
|
|
10
14
|
*/
|
|
11
15
|
(function (global, factory) {
|
|
12
16
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
@@ -77,7 +81,7 @@
|
|
|
77
81
|
painter.beginPath();
|
|
78
82
|
painter.translate(x, y);
|
|
79
83
|
painter.rotate(deg);
|
|
80
|
-
painter.font = config
|
|
84
|
+
painter.font = config.fontStyle + " " + config.fontWeight + " " + config.fontSize + "px " + config.fontFamily;
|
|
81
85
|
return painter;
|
|
82
86
|
};
|
|
83
87
|
var initArc = function (painter, config, cx, cy, r1, r2, beginDeg, deg) {
|
|
@@ -99,17 +103,17 @@
|
|
|
99
103
|
painter.beginPath();
|
|
100
104
|
painter.moveTo(begInnerX, begInnerY);
|
|
101
105
|
painter.arc(cx, cy, r1, beginA, endA, false);
|
|
102
|
-
if (config
|
|
106
|
+
if (config.arcEndCap != 'round')
|
|
103
107
|
painter.lineTo(endOuterX, endOuterY);
|
|
104
108
|
else
|
|
105
109
|
painter.arc((endInnerX + endOuterX) * 0.5, (endInnerY + endOuterY) * 0.5, r, endA - Math.PI, endA, true);
|
|
106
110
|
painter.arc(cx, cy, r2, endA, beginA, true);
|
|
107
|
-
if (config
|
|
111
|
+
if (config.arcStartCap != 'round')
|
|
108
112
|
painter.lineTo(begInnerX, begInnerY);
|
|
109
113
|
else
|
|
110
114
|
painter.arc((begInnerX + begOuterX) * 0.5, (begInnerY + begOuterY) * 0.5, r, beginA, beginA - Math.PI, true);
|
|
111
115
|
});
|
|
112
|
-
if (config
|
|
116
|
+
if (config.arcStartCap == 'butt')
|
|
113
117
|
painter.closePath();
|
|
114
118
|
return painter;
|
|
115
119
|
};
|
|
@@ -125,17 +129,36 @@
|
|
|
125
129
|
return painter;
|
|
126
130
|
};
|
|
127
131
|
|
|
132
|
+
function texts (painter, contents, width, height, doback) {
|
|
133
|
+
var lineNumber = 0, content = "";
|
|
134
|
+
for (var i = 0; i < contents.length; i++) {
|
|
135
|
+
if (painter.measureText(content + contents[i]).width > width) {
|
|
136
|
+
lineNumber += 1;
|
|
137
|
+
doback(content, (lineNumber - 0.5) * height);
|
|
138
|
+
content = contents[i];
|
|
139
|
+
}
|
|
140
|
+
else if (i == contents.length - 1) {
|
|
141
|
+
lineNumber += 1;
|
|
142
|
+
doback(content + contents[i], (lineNumber - 0.5) * height);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
content += contents[i];
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return lineNumber * height;
|
|
149
|
+
}
|
|
150
|
+
|
|
128
151
|
var Painter = (function () {
|
|
129
152
|
function Painter(canvas, opts, region) {
|
|
130
153
|
if (opts === void 0) { opts = {}; }
|
|
131
154
|
this.__region = null;
|
|
132
155
|
this.__specialConfig = {
|
|
133
|
-
"
|
|
134
|
-
"
|
|
135
|
-
"
|
|
136
|
-
"
|
|
137
|
-
"
|
|
138
|
-
"
|
|
156
|
+
"fontSize": 16,
|
|
157
|
+
"fontFamily": "sans-serif",
|
|
158
|
+
"fontWeight": 400,
|
|
159
|
+
"fontStyle": "normal",
|
|
160
|
+
"arcStartCap": 'butt',
|
|
161
|
+
"arcEndCap": 'butt'
|
|
139
162
|
};
|
|
140
163
|
this.__initConfig = {
|
|
141
164
|
"fillStyle": 'black',
|
|
@@ -187,7 +210,7 @@
|
|
|
187
210
|
if (this.__region)
|
|
188
211
|
this.__region.strokeText(text, x, y, deg);
|
|
189
212
|
this.painter.save();
|
|
190
|
-
initText(this.painter, this.__specialConfig, x, y, deg
|
|
213
|
+
initText(this.painter, this.__specialConfig, x, y, deg).strokeText(text, 0, 0);
|
|
191
214
|
this.painter.restore();
|
|
192
215
|
return this;
|
|
193
216
|
};
|
|
@@ -196,12 +219,55 @@
|
|
|
196
219
|
if (this.__region)
|
|
197
220
|
this.__region.fullText(text, x, y, deg);
|
|
198
221
|
this.painter.save();
|
|
199
|
-
initText(this.painter, this.__specialConfig, x, y, deg
|
|
222
|
+
initText(this.painter, this.__specialConfig, x, y, deg);
|
|
200
223
|
this.painter.fillText(text, 0, 0);
|
|
201
224
|
this.painter.strokeText(text, 0, 0);
|
|
202
225
|
this.painter.restore();
|
|
203
226
|
return this;
|
|
204
227
|
};
|
|
228
|
+
Painter.prototype.fillTexts = function (contents, x, y, width, lineHeight, deg) {
|
|
229
|
+
var _this = this;
|
|
230
|
+
if (lineHeight === void 0) { lineHeight = 1.2; }
|
|
231
|
+
if (deg === void 0) { deg = 0; }
|
|
232
|
+
if (this.__region)
|
|
233
|
+
this.__region.fillTexts(contents, x, y, width, lineHeight);
|
|
234
|
+
this.painter.save();
|
|
235
|
+
initText(this.painter, this.__specialConfig, x, y, deg);
|
|
236
|
+
var height = texts(this.painter, contents, width, this.__specialConfig.fontSize * lineHeight, function (content, top) {
|
|
237
|
+
_this.painter.fillText(content, 0, top);
|
|
238
|
+
});
|
|
239
|
+
this.painter.restore();
|
|
240
|
+
return height;
|
|
241
|
+
};
|
|
242
|
+
Painter.prototype.strokeTexts = function (contents, x, y, width, lineHeight, deg) {
|
|
243
|
+
var _this = this;
|
|
244
|
+
if (lineHeight === void 0) { lineHeight = 1.2; }
|
|
245
|
+
if (deg === void 0) { deg = 0; }
|
|
246
|
+
if (this.__region)
|
|
247
|
+
this.__region.fillTexts(contents, x, y, width, lineHeight);
|
|
248
|
+
this.painter.save();
|
|
249
|
+
initText(this.painter, this.__specialConfig, x, y, deg);
|
|
250
|
+
var height = texts(this.painter, contents, width, this.__specialConfig.fontSize * lineHeight, function (content, top) {
|
|
251
|
+
_this.painter.strokeText(content, 0, top);
|
|
252
|
+
});
|
|
253
|
+
this.painter.restore();
|
|
254
|
+
return height;
|
|
255
|
+
};
|
|
256
|
+
Painter.prototype.fullTexts = function (contents, x, y, width, lineHeight, deg) {
|
|
257
|
+
var _this = this;
|
|
258
|
+
if (lineHeight === void 0) { lineHeight = 1.2; }
|
|
259
|
+
if (deg === void 0) { deg = 0; }
|
|
260
|
+
if (this.__region)
|
|
261
|
+
this.__region.fillTexts(contents, x, y, width, lineHeight);
|
|
262
|
+
this.painter.save();
|
|
263
|
+
initText(this.painter, this.__specialConfig, x, y, deg);
|
|
264
|
+
var height = texts(this.painter, contents, width, this.__specialConfig.fontSize * lineHeight, function (content, top) {
|
|
265
|
+
_this.painter.fillText(content, 0, top);
|
|
266
|
+
_this.painter.strokeText(content, 0, top);
|
|
267
|
+
});
|
|
268
|
+
this.painter.restore();
|
|
269
|
+
return height;
|
|
270
|
+
};
|
|
205
271
|
Painter.prototype.beginPath = function () {
|
|
206
272
|
if (this.__region)
|
|
207
273
|
this.__region.beginPath();
|
|
@@ -344,46 +410,56 @@
|
|
|
344
410
|
return Painter;
|
|
345
411
|
}());
|
|
346
412
|
|
|
413
|
+
function assemble (begin, end, step, count) {
|
|
414
|
+
var val = [];
|
|
415
|
+
for (var index = 0; index < count; index++)
|
|
416
|
+
val[index] = begin;
|
|
417
|
+
return function () {
|
|
418
|
+
for (var i = 0; i < count; i++) {
|
|
419
|
+
if (val[i] < end) {
|
|
420
|
+
val[i] = +(val[i] + step).toFixed(7);
|
|
421
|
+
break;
|
|
422
|
+
}
|
|
423
|
+
else if (i < count - 1) {
|
|
424
|
+
val[i] = begin;
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
return val;
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
var oldAttrName = {
|
|
432
|
+
"font-size": "fontSize",
|
|
433
|
+
"font-family": "fontFamily",
|
|
434
|
+
"font-weight": "fontWeight",
|
|
435
|
+
"font-style": "fontStyle",
|
|
436
|
+
"arc-start-cap": "arcStartCap",
|
|
437
|
+
"arc-end-cap": "arcEndCap"
|
|
438
|
+
};
|
|
347
439
|
var Canvas$1 = (function (_super) {
|
|
348
440
|
__extends(Canvas, _super);
|
|
349
441
|
function Canvas(ViewCanvas, RegionCanvas) {
|
|
350
|
-
var
|
|
442
|
+
var _this = _super.call(this, ViewCanvas, {}, new Painter(RegionCanvas, {
|
|
351
443
|
willReadFrequently: true
|
|
352
444
|
})) || this;
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
return _this_1;
|
|
445
|
+
_this.name = "Canvas";
|
|
446
|
+
_this.__regionList = {};
|
|
447
|
+
_this.__regionAssemble = assemble(0, 255, 1, 3);
|
|
448
|
+
_this.setRegion("");
|
|
449
|
+
return _this;
|
|
359
450
|
}
|
|
360
451
|
Canvas.prototype.config = function (configs) {
|
|
361
452
|
for (var key in configs) {
|
|
362
|
-
|
|
453
|
+
var _key = oldAttrName[key] || key;
|
|
454
|
+
this.useConfig(_key, configs[key]);
|
|
363
455
|
}
|
|
364
456
|
return this;
|
|
365
457
|
};
|
|
366
458
|
Canvas.prototype.setRegion = function (regionName) {
|
|
367
|
-
var _this = this;
|
|
368
459
|
if (regionName) {
|
|
369
460
|
if (this.__regionList[regionName] == undefined) {
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
_this.__rgb[0] += 1;
|
|
373
|
-
_this.__p = 'g';
|
|
374
|
-
return 'rgb(' + _this.__rgb[0] + ',' + _this.__rgb[1] + ',' + _this.__rgb[2] + ')';
|
|
375
|
-
},
|
|
376
|
-
'g': function () {
|
|
377
|
-
_this.__rgb[1] += 1;
|
|
378
|
-
_this.__p = 'b';
|
|
379
|
-
return 'rgb(' + _this.__rgb[0] + ',' + _this.__rgb[1] + ',' + _this.__rgb[2] + ')';
|
|
380
|
-
},
|
|
381
|
-
'b': function () {
|
|
382
|
-
_this.__rgb[2] += 1;
|
|
383
|
-
_this.__p = 'r';
|
|
384
|
-
return 'rgb(' + _this.__rgb[0] + ',' + _this.__rgb[1] + ',' + _this.__rgb[2] + ')';
|
|
385
|
-
}
|
|
386
|
-
}[this.__p]();
|
|
461
|
+
var tempColor = this.__regionAssemble();
|
|
462
|
+
this.__regionList[regionName] = "rgb(" + tempColor[0] + "," + tempColor[1] + "," + tempColor[2] + ")";
|
|
387
463
|
}
|
|
388
464
|
this.__region.useConfig("fillStyle", this.__regionList[regionName]) &&
|
|
389
465
|
this.__region.useConfig("strokeStyle", this.__regionList[regionName]);
|
|
@@ -395,13 +471,13 @@
|
|
|
395
471
|
return this;
|
|
396
472
|
};
|
|
397
473
|
Canvas.prototype.getRegion = function (x, y) {
|
|
398
|
-
var
|
|
474
|
+
var _this = this;
|
|
399
475
|
return new Promise(function (resolve, reject) {
|
|
400
|
-
var imgData =
|
|
476
|
+
var imgData = _this.__region.painter.getImageData(x - 0.5, y - 0.5, 1, 1);
|
|
401
477
|
var currentRGBA = imgData.data;
|
|
402
478
|
var doit = function () {
|
|
403
|
-
for (var key in
|
|
404
|
-
if ("rgb(" + currentRGBA[0] + "," + currentRGBA[1] + "," + currentRGBA[2] + ")" ==
|
|
479
|
+
for (var key in _this.__regionList) {
|
|
480
|
+
if ("rgb(" + currentRGBA[0] + "," + currentRGBA[1] + "," + currentRGBA[2] + ")" == _this.__regionList[key]) {
|
|
405
481
|
resolve(key);
|
|
406
482
|
break;
|
|
407
483
|
}
|
|
@@ -419,12 +495,17 @@
|
|
|
419
495
|
}
|
|
420
496
|
});
|
|
421
497
|
};
|
|
498
|
+
Canvas.prototype.getContext = function (isRegion) {
|
|
499
|
+
if (isRegion === void 0) { isRegion = false; }
|
|
500
|
+
return isRegion ? this.__region.painter : this.painter;
|
|
501
|
+
};
|
|
422
502
|
return Canvas;
|
|
423
503
|
}(Painter));
|
|
424
504
|
|
|
425
505
|
var Canvas = (function (_super) {
|
|
426
506
|
__extends(Canvas, _super);
|
|
427
507
|
function Canvas(el) {
|
|
508
|
+
var _this = this;
|
|
428
509
|
if (!el) {
|
|
429
510
|
throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.");
|
|
430
511
|
}
|
|
@@ -440,7 +521,7 @@
|
|
|
440
521
|
el.appendChild(ViewCanvas);
|
|
441
522
|
RegionCanvas = document.createElement('canvas');
|
|
442
523
|
_el._vislite_canvas_ = [ViewCanvas, RegionCanvas];
|
|
443
|
-
el.setAttribute('vislite', '
|
|
524
|
+
el.setAttribute('vislite', 'Canvas');
|
|
444
525
|
}
|
|
445
526
|
for (var _i = 0, _a = [ViewCanvas, RegionCanvas]; _i < _a.length; _i++) {
|
|
446
527
|
var canvas = _a[_i];
|
|
@@ -449,8 +530,16 @@
|
|
|
449
530
|
canvas.style.height = height + "px";
|
|
450
531
|
canvas.setAttribute('height', height + "");
|
|
451
532
|
}
|
|
452
|
-
|
|
533
|
+
_this = _super.call(this, ViewCanvas, RegionCanvas) || this;
|
|
534
|
+
_this.__canvas = ViewCanvas;
|
|
535
|
+
return _this;
|
|
453
536
|
}
|
|
537
|
+
Canvas.prototype.toDataURL = function () {
|
|
538
|
+
var _this = this;
|
|
539
|
+
return new Promise(function (resolve) {
|
|
540
|
+
resolve(_this.__canvas.toDataURL());
|
|
541
|
+
});
|
|
542
|
+
};
|
|
454
543
|
return Canvas;
|
|
455
544
|
}(Canvas$1));
|
|
456
545
|
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* VISLite JavaScript Library v0.
|
|
2
|
+
* VISLite JavaScript Library v0.2.0-alpha.7
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*
|
|
5
5
|
* Copyright zxl20070701
|
|
6
6
|
* Released under the MIT license
|
|
7
7
|
* https://zxl20070701.github.io/notebook/home.html
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* 本版本系测试版本,请认真阅读下述说明再使用:
|
|
10
|
+
*
|
|
11
|
+
*【测试版本细则】
|
|
12
|
+
* alpha:内测版本,仅供开发人员提供测试环境而发布,后续的修改可能极具破坏性,非有明确了解前请勿直接用于项目中
|
|
13
|
+
* beta:外测版本,正式发布前的确认测试,或者新功能紧急发布,一般可以直接用于实际项目,因为即使后续发现了问题,直接使用正式版即可,不会有破坏性
|
|
10
14
|
*/
|
|
11
|
-
var t,i;t=this,i=function(){"use strict";var t=function(i,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var e in i)Object.prototype.hasOwnProperty.call(i,e)&&(t[e]=i[e])},t(i,e)};function i(i,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function
|
|
15
|
+
var t,i;t=this,i=function(){"use strict";var t=function(i,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var e in i)Object.prototype.hasOwnProperty.call(i,e)&&(t[e]=i[e])},t(i,e)};function i(i,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=i}t(i,e),i.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var e=function(t,i,e,n,r){var o=Math.cos(e),s=Math.sin(e);return[+((n-t)*o-(r-i)*s+t).toFixed(7),+((n-t)*s+(r-i)*o+i).toFixed(7)]},n=function(t,i,e,n,r){return t.beginPath(),t.translate(e,n),t.rotate(r),t.font=i.fontStyle+" "+i.fontWeight+" "+i.fontSize+"px "+i.fontFamily,t},r=function(t,i,n,r,o,s,a,h){if(o>s){var _=o;o=s,s=_}return a%=2*Math.PI,h>=1.999999*Math.PI||h<=1.999999*-Math.PI?h=2*Math.PI:h%=2*Math.PI,function(t,i,n,r,o,s,a){i<0&&(t+=i,i*=-1);var h,_=[];h=e(0,0,t,o,0),_[0]=h[0],_[1]=h[1],h=e(0,0,i,h[0],h[1]),_[2]=h[0],_[3]=h[1],h=e(0,0,t,s,0),_[4]=h[0],_[5]=h[1],h=e(0,0,i,h[0],h[1]),_[6]=h[0],_[7]=h[1],a(t,t+i,_[0]+n,_[1]+r,_[4]+n,_[5]+r,_[2]+n,_[3]+r,_[6]+n,_[7]+r,.5*(s-o))}(a,h,n,r,o,s,(function(e,a,h,_,l,f,p,u,c,g,v){v<0&&(v=-v),t.beginPath(),t.moveTo(h,_),t.arc(n,r,o,e,a,!1),"round"!=i.arcEndCap?t.lineTo(c,g):t.arc(.5*(p+c),.5*(u+g),v,a-Math.PI,a,!0),t.arc(n,r,s,a,e,!0),"round"!=i.arcStartCap?t.lineTo(h,_):t.arc(.5*(h+l),.5*(_+f),v,e,e-Math.PI,!0)})),"butt"==i.arcStartCap&&t.closePath(),t},o=function(t,i,e,n){return t.beginPath(),t.moveTo(i+n,e),t.arc(i,e,n,0,2*Math.PI),t},s=function(t,i,e,n,r){return t.beginPath(),t.rect(i,e,n,r),t};function a(t,i,e,n,r){for(var o=0,s="",a=0;a<i.length;a++)t.measureText(s+i[a]).width>e?(r(s,((o+=1)-.5)*n),s=i[a]):a==i.length-1?(o+=1,r(s+i[a],(o-.5)*n)):s+=i[a];return o*n}var h=function(){function t(t,i,e){void 0===i&&(i={}),this.__region=null,this.__specialConfig={fontSize:16,fontFamily:"sans-serif",fontWeight:400,fontStyle:"normal",arcStartCap:"butt",arcEndCap:"butt"},this.__initConfig={fillStyle:"black",strokeStyle:"black",lineWidth:1,textAlign:"left",textBaseline:"middle",lineDash:[],shadowBlur:0,shadowColor:"black"},this.painter=t.getContext("2d",i),this.__region=e,this.painter.textBaseline="middle",this.painter.textAlign="left"}return t.prototype.useConfig=function(t,i){if(this.__region&&["fillStyle","strokeStyle","shadowBlur","shadowColor"].indexOf(t)<0&&this.__region.useConfig(t,i),"lineDash"==t)this.painter.setLineDash&&this.painter.setLineDash(i);else if(t in this.__specialConfig)this.__specialConfig[t]=i;else{if(!(t in this.__initConfig))throw new Error("Illegal configuration item of painter : "+t+" !");this.painter[t]=i}return this},t.prototype.fillText=function(t,i,e,r){return void 0===r&&(r=0),this.__region&&this.__region.fillText(t,i,e,r),this.painter.save(),n(this.painter,this.__specialConfig,i,e,r).fillText(t,0,0),this.painter.restore(),this},t.prototype.strokeText=function(t,i,e,r){return void 0===r&&(r=0),this.__region&&this.__region.strokeText(t,i,e,r),this.painter.save(),n(this.painter,this.__specialConfig,i,e,r).strokeText(t,0,0),this.painter.restore(),this},t.prototype.fullText=function(t,i,e,r){return void 0===r&&(r=0),this.__region&&this.__region.fullText(t,i,e,r),this.painter.save(),n(this.painter,this.__specialConfig,i,e,r),this.painter.fillText(t,0,0),this.painter.strokeText(t,0,0),this.painter.restore(),this},t.prototype.fillTexts=function(t,i,e,r,o,s){var h=this;void 0===o&&(o=1.2),void 0===s&&(s=0),this.__region&&this.__region.fillTexts(t,i,e,r,o),this.painter.save(),n(this.painter,this.__specialConfig,i,e,s);var _=a(this.painter,t,r,this.__specialConfig.fontSize*o,(function(t,i){h.painter.fillText(t,0,i)}));return this.painter.restore(),_},t.prototype.strokeTexts=function(t,i,e,r,o,s){var h=this;void 0===o&&(o=1.2),void 0===s&&(s=0),this.__region&&this.__region.fillTexts(t,i,e,r,o),this.painter.save(),n(this.painter,this.__specialConfig,i,e,s);var _=a(this.painter,t,r,this.__specialConfig.fontSize*o,(function(t,i){h.painter.strokeText(t,0,i)}));return this.painter.restore(),_},t.prototype.fullTexts=function(t,i,e,r,o,s){var h=this;void 0===o&&(o=1.2),void 0===s&&(s=0),this.__region&&this.__region.fillTexts(t,i,e,r,o),this.painter.save(),n(this.painter,this.__specialConfig,i,e,s);var _=a(this.painter,t,r,this.__specialConfig.fontSize*o,(function(t,i){h.painter.fillText(t,0,i),h.painter.strokeText(t,0,i)}));return this.painter.restore(),_},t.prototype.beginPath=function(){return this.__region&&this.__region.beginPath(),this.painter.beginPath(),this},t.prototype.closePath=function(){return this.__region&&this.__region.closePath(),this.painter.closePath(),this},t.prototype.moveTo=function(t,i){return this.__region&&this.__region.moveTo(t,i),this.painter.moveTo(Math.round(t)+.5,Math.round(i)+.5),this},t.prototype.lineTo=function(t,i){return this.__region&&this.__region.lineTo(t,i),this.painter.lineTo(Math.round(t)+.5,Math.round(i)+.5),this},t.prototype.arc=function(t,i,e,n,r){return this.__region&&this.__region.arc(t,i,e,n,r),this.painter.arc(t,i,e,n,n+r,r<0),this},t.prototype.fill=function(){return this.__region&&this.__region.fill(),this.painter.fill(),this},t.prototype.stroke=function(){return this.__region&&this.__region.stroke(),this.painter.stroke(),this},t.prototype.full=function(){return this.__region&&this.__region.full(),this.painter.fill(),this.painter.stroke(),this},t.prototype.save=function(){return this.__region&&this.__region.save(),this.painter.save(),this},t.prototype.restore=function(){return this.__region&&this.__region.restore(),this.painter.restore(),this},t.prototype.quadraticCurveTo=function(t,i,e,n){return this.__region&&this.__region.quadraticCurveTo(t,i,e,n),this.painter.quadraticCurveTo(t,i,e,n),this},t.prototype.bezierCurveTo=function(t,i,e,n,r,o){return this.__region&&this.__region.bezierCurveTo(t,i,e,n,r,o),this.painter.bezierCurveTo(t,i,e,n,r,o),this},t.prototype.clearRect=function(t,i,e,n){return this.__region&&this.__region.clearRect(t,i,e,n),this.painter.clearRect(t,i,e,n),this},t.prototype.fillArc=function(t,i,e,n,o,s){return this.__region&&this.__region.fillArc(t,i,e,n,o,s),r(this.painter,this.__specialConfig,t,i,e,n,o,s).fill(),this},t.prototype.strokeArc=function(t,i,e,n,o,s){return this.__region&&this.__region.strokeArc(t,i,e,n,o,s),r(this.painter,this.__specialConfig,t,i,e,n,o,s).stroke(),this},t.prototype.fullArc=function(t,i,e,n,o,s){return this.__region&&this.__region.fullArc(t,i,e,n,o,s),r(this.painter,this.__specialConfig,t,i,e,n,o,s),this.painter.fill(),this.painter.stroke(),this},t.prototype.fillCircle=function(t,i,e){return this.__region&&this.__region.fillCircle(t,i,e),o(this.painter,t,i,e).fill(),this},t.prototype.strokeCircle=function(t,i,e){return this.__region&&this.__region.strokeCircle(t,i,e),o(this.painter,t,i,e).stroke(),this},t.prototype.fullCircle=function(t,i,e){return this.__region&&this.__region.fullCircle(t,i,e),o(this.painter,t,i,e),this.painter.fill(),this.painter.stroke(),this},t.prototype.fillRect=function(t,i,e,n){return this.__region&&this.__region.fillRect(t,i,e,n),s(this.painter,t,i,e,n).fill(),this},t.prototype.strokeRect=function(t,i,e,n){return this.__region&&this.__region.strokeRect(t,i,e,n),s(this.painter,t,i,e,n).stroke(),this},t.prototype.fullRect=function(t,i,e,n){return this.__region&&this.__region.fullRect(t,i,e,n),s(this.painter,t,i,e,n),this.painter.fill(),this.painter.stroke(),this},t}(),_={"font-size":"fontSize","font-family":"fontFamily","font-weight":"fontWeight","font-style":"fontStyle","arc-start-cap":"arcStartCap","arc-end-cap":"arcEndCap"},l=function(t){function e(i,e){var n=t.call(this,i,{},new h(e,{willReadFrequently:!0}))||this;return n.name="Canvas",n.__regionList={},n.__regionAssemble=function(t,i,e,n){for(var r=[],o=0;o<n;o++)r[o]=t;return function(){for(var o=0;o<n;o++){if(r[o]<i){r[o]=+(r[o]+e).toFixed(7);break}o<n-1&&(r[o]=t)}return r}}(0,255,1,3),n.setRegion(""),n}return i(e,t),e.prototype.config=function(t){for(var i in t){var e=_[i]||i;this.useConfig(e,t[i])}return this},e.prototype.setRegion=function(t){if(t){if(null==this.__regionList[t]){var i=this.__regionAssemble();this.__regionList[t]="rgb("+i[0]+","+i[1]+","+i[2]+")"}this.__region.useConfig("fillStyle",this.__regionList[t])&&this.__region.useConfig("strokeStyle",this.__regionList[t])}else this.__region.useConfig("fillStyle","#000000")&&this.__region.useConfig("strokeStyle","#000000");return this},e.prototype.getRegion=function(t,i){var e=this;return new Promise((function(n,r){var o=e.__region.painter.getImageData(t-.5,i-.5,1,1),s=o.data,a=function(){for(var t in e.__regionList)if("rgb("+s[0]+","+s[1]+","+s[2]+")"==e.__regionList[t]){n(t);break}n("")};s?a():o.then((function(t){s=t,a()}))}))},e.prototype.getContext=function(t){return void 0===t&&(t=!1),t?this.__region.painter:this.painter},e}(h);return function(t){function e(i){var e=this;if(!i)throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.");var n,r,o=i.clientWidth,s=i.clientHeight,a=i;a._vislite_canvas_?(n=a._vislite_canvas_[0],r=a._vislite_canvas_[1]):(n=document.createElement("canvas"),i.appendChild(n),r=document.createElement("canvas"),a._vislite_canvas_=[n,r],i.setAttribute("vislite","Canvas"));for(var h=0,_=[n,r];h<_.length;h++){var l=_[h];l.style.width=o+"px",l.setAttribute("width",o+""),l.style.height=s+"px",l.setAttribute("height",s+"")}return(e=t.call(this,n,r)||this).__canvas=n,e}return i(e,t),e.prototype.toDataURL=function(){var t=this;return new Promise((function(i){i(t.__canvas.toDataURL())}))},e}(l)},"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).VISLite_Canvas=i();
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* VISLite JavaScript Library v0.
|
|
2
|
+
* VISLite JavaScript Library v0.2.0-alpha.7
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*
|
|
5
5
|
* Copyright zxl20070701
|
|
6
6
|
* Released under the MIT license
|
|
7
7
|
* https://zxl20070701.github.io/notebook/home.html
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* 本版本系测试版本,请认真阅读下述说明再使用:
|
|
10
|
+
*
|
|
11
|
+
*【测试版本细则】
|
|
12
|
+
* alpha:内测版本,仅供开发人员提供测试环境而发布,后续的修改可能极具破坏性,非有明确了解前请勿直接用于项目中
|
|
13
|
+
* beta:外测版本,正式发布前的确认测试,或者新功能紧急发布,一般可以直接用于实际项目,因为即使后续发现了问题,直接使用正式版即可,不会有破坏性
|
|
10
14
|
*/
|
|
11
15
|
(function (global, factory) {
|
|
12
16
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* VISLite JavaScript Library v0.
|
|
2
|
+
* VISLite JavaScript Library v0.2.0-alpha.7
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*
|
|
5
5
|
* Copyright zxl20070701
|
|
6
6
|
* Released under the MIT license
|
|
7
7
|
* https://zxl20070701.github.io/notebook/home.html
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* 本版本系测试版本,请认真阅读下述说明再使用:
|
|
10
|
+
*
|
|
11
|
+
*【测试版本细则】
|
|
12
|
+
* alpha:内测版本,仅供开发人员提供测试环境而发布,后续的修改可能极具破坏性,非有明确了解前请勿直接用于项目中
|
|
13
|
+
* beta:外测版本,正式发布前的确认测试,或者新功能紧急发布,一般可以直接用于实际项目,因为即使后续发现了问题,直接使用正式版即可,不会有破坏性
|
|
10
14
|
*/
|
|
11
15
|
var t,i;t=this,i=function(){"use strict";var t=function(){function t(t){void 0===t&&(t=.5),this.name="Hermite",this.__u=t}return t.prototype.setP=function(t,i,_,h,s,e){if(!(t<_))throw new Error("The point x-position should be increamented!");this.__a=t,this.__b=_;var n=this.__u*s,o=this.__u*e;return i/=_-t,h/=_-t,this.__MR=[2*i-2*h+n+o,3*h-3*i-2*n-o,n,i],this},t.prototype.use=function(t){if(this.__MR){var i=(t-this.__a)/(this.__b-this.__a),_=i*i;return(i*_*this.__MR[0]+_*this.__MR[1]+i*this.__MR[2]+this.__MR[3])*(this.__b-this.__a)}throw new Error("You shoud first set the position!")},t}();return function(){function i(t){void 0===t&&(t=0),this.name="Cardinal",this.__t=t}return i.prototype.setP=function(i){this.__HS={x:[],h:[]};var _,h,s=(i[1][1]-i[0][1])/(i[1][0]-i[0][0]);for(this.__HS.x[0]=i[0][0],_=1;_<i.length;_++){if(i[_][0]<=i[_-1][0])throw new Error("The point position should be increamented!");this.__HS.x[_]=i[_][0],h=_<i.length-1?(i[_+1][1]-i[_-1][1])/(i[_+1][0]-i[_-1][0]):(i[_][1]-i[_-1][1])/(i[_][0]-i[_-1][0]),this.__HS.h[_-1]=new t(.5*(1-this.__t)).setP(i[_-1][0],i[_-1][1],i[_][0],i[_][1],s,h),s=h}return this},i.prototype.use=function(t){if(this.__HS){for(this.__i=-1;this.__i+1<this.__HS.x.length&&(t>this.__HS.x[this.__i+1]||-1==this.__i&&t>=this.__HS.x[this.__i+1]);)this.__i+=1;return this.__i<0?this.__HS.h[0].use(this.__HS.x[0]):this.__i>=this.__HS.h.length?this.__HS.h[this.__HS.h.length-1].use(this.__HS.x[this.__HS.x.length-1]):this.__HS.h[this.__i].use(t)}throw new Error("You shoud first set the position!")},i}()},"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).VISLite_Cardinal=i();
|
package/lib/Eoap/index.umd.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* VISLite JavaScript Library v0.
|
|
2
|
+
* VISLite JavaScript Library v0.2.0-alpha.7
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*
|
|
5
5
|
* Copyright zxl20070701
|
|
6
6
|
* Released under the MIT license
|
|
7
7
|
* https://zxl20070701.github.io/notebook/home.html
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* 本版本系测试版本,请认真阅读下述说明再使用:
|
|
10
|
+
*
|
|
11
|
+
*【测试版本细则】
|
|
12
|
+
* alpha:内测版本,仅供开发人员提供测试环境而发布,后续的修改可能极具破坏性,非有明确了解前请勿直接用于项目中
|
|
13
|
+
* beta:外测版本,正式发布前的确认测试,或者新功能紧急发布,一般可以直接用于实际项目,因为即使后续发现了问题,直接使用正式版即可,不会有破坏性
|
|
10
14
|
*/
|
|
11
15
|
(function (global, factory) {
|
|
12
16
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
@@ -34,9 +38,9 @@
|
|
|
34
38
|
this.__scale = scale;
|
|
35
39
|
this.__center = center;
|
|
36
40
|
}
|
|
37
|
-
Eoap.prototype.use = function (
|
|
38
|
-
var p = rotateY((360 -
|
|
39
|
-
p = rotateZ(
|
|
41
|
+
Eoap.prototype.use = function (λ, φ) {
|
|
42
|
+
var p = rotateY((360 - φ) / 180 * Math.PI, 100 * this.__scale, 0, 0);
|
|
43
|
+
p = rotateZ(λ / 180 * Math.PI, p[0], p[1], p[2]);
|
|
40
44
|
p = rotateZ((90 - this.__center[0]) / 180 * Math.PI, p[0], p[1], p[2]);
|
|
41
45
|
p = rotateX((90 - this.__center[1]) / 180 * Math.PI, p[0], p[1], p[2]);
|
|
42
46
|
return [
|