Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
x649585723
incubator-echarts
提交
b26c2575
I
incubator-echarts
项目概览
x649585723
/
incubator-echarts
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
incubator-echarts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b26c2575
编写于
3月 11, 2014
作者:
K
kener
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
markLine曲线优化
上级
ceccb023
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
47 deletion
+14
-47
src/util/shape/markLine.js
src/util/shape/markLine.js
+14
-47
未找到文件。
src/util/shape/markLine.js
浏览文件 @
b26c2575
...
...
@@ -175,7 +175,7 @@ define(
var
yEnd
=
style
.
pointList
[
len
-
1
][
1
];
var
delta
=
0
;
if
(
style
.
smooth
===
'
spline
'
)
{
delta
=
0.
15
;
delta
=
0.
2
;
// 偏移0.2弧度
}
// 原谅我吧,这三角函数实在没想明白,只能这么笨了
var
rotate
=
Math
.
atan
(
...
...
@@ -248,63 +248,30 @@ define(
[
style
.
xEnd
,
style
.
yEnd
]
];
if
(
style
.
smooth
===
'
spline
'
)
{
pointList
[
2
]
=
[
pointList
[
1
][
0
],
pointList
[
1
][
1
]];
pointList
[
1
]
=
this
.
getOffetPoint
(
pointList
[
0
],
pointList
[
2
]);
var
lastPointX
=
pointList
[
1
][
0
];
var
lastPointY
=
pointList
[
1
][
1
];
pointList
[
3
]
=
[
lastPointX
,
lastPointY
];
pointList
[
1
]
=
this
.
getOffetPoint
(
pointList
[
0
],
pointList
[
3
]);
pointList
[
2
]
=
this
.
getOffetPoint
(
pointList
[
3
],
pointList
[
0
]);
pointList
=
this
.
smoothSpline
(
pointList
,
false
);
// 修正最后一点在插值产生的偏移
pointList
[
pointList
.
length
-
1
]
=
[
lastPointX
,
lastPointY
];
}
return
pointList
;
},
/*
getOffetPoint2 : function(sp, ep) {
var distance = ((sp[0] - ep[0]) * (sp[0] - ep[0]) + (sp[1] - ep[1]) * (sp[1] - ep[1]));
var delta = Math.round(Math.sqrt(distance) / 5);
//console.log(distance , delta);
var mp = [(sp[0] + ep[0]) / 2, (sp[1] + ep[1]) / 2];
var k; // 斜率
var angle;
if (sp[0] != ep[0] && sp[1] != ep[1]) {
// 斜率存在
k = (ep[1] - sp[1]) / (ep[0] - sp[0]);
k = -1 / k; // 垂线斜率
angle = Math.atan(k);
//var HalfPI = Math.PI / 2;
var dX = Math.abs(Math.cos(angle) * delta);
var dY = Math.abs(Math.sin(angle) * delta);
if (sp[0] <= ep[0] && sp[1] >= ep[1]) {
// 1
mp[0] -= dX;
mp[1] -= dY;
}
else if (sp[0] >= ep[0] && sp[1] >= ep[1]){
// 2
mp[0] += dX;
mp[1] -= dY;
}
else if (sp[0] >= ep[0] && sp[1] <= ep[1]){
// 3
mp[0] -= dX;
mp[1] -= dY;
}
else if (sp[0] <= ep[0] && sp[1] <= ep[1]){
// 4
mp[0] += dX;
mp[1] -= dY;
}
//console.log(angle,Math.cos(angle),Math.sin(angle))
}
return mp;
},
*/
/**
* {Array} start point
* {Array} end point
*/
getOffetPoint
:
function
(
sp
,
ep
)
{
var
distance
=
Math
.
sqrt
(
Math
.
round
(
(
sp
[
0
]
-
ep
[
0
])
*
(
sp
[
0
]
-
ep
[
0
])
+
(
sp
[
1
]
-
ep
[
1
])
*
(
sp
[
1
]
-
ep
[
1
])
))
/
2
;
))
/
3
;
//console.log(delta);
var
mp
=
[
sp
[
0
],
sp
[
1
]];
var
angle
;
var
deltaAngle
=
0.
15
;
// 偏移0.15
弧度
var
deltaAngle
=
0.
2
;
// 偏移0.2
弧度
if
(
sp
[
0
]
!=
ep
[
0
]
&&
sp
[
1
]
!=
ep
[
1
])
{
// 斜率存在
var
k
=
(
ep
[
1
]
-
sp
[
1
])
/
(
ep
[
0
]
-
sp
[
0
]);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录