提交 13c3ca86 编写于 作者: P pah100

Merge branch 'dev-3.0.0' of https://github.com/ecomfe/echarts into dev-3.0.0

......@@ -92,22 +92,37 @@ define(function(require) {
function createGridClipShape(cartesian, hasAnimation, seriesModel) {
var xExtent = getAxisExtentWithGap(cartesian.getAxis('x'));
var yExtent = getAxisExtentWithGap(cartesian.getAxis('y'));
var isHorizontal = cartesian.getBaseAxis().isHorizontal();
var x = xExtent[0];
var y = yExtent[0];
var width = xExtent[1] - x;
var height = yExtent[1] - y;
// Expand clip shape to avoid line value exceeds axis
if (isHorizontal) {
height *= 10;
y -= height / 2;
}
else {
width *= 10;
x -= width / 2;
}
isHorizontal ? (height *= 10) : (width *= 10);
var clipPath = new graphic.Rect({
shape: {
x: xExtent[0],
y: yExtent[0],
width: xExtent[1] - xExtent[0],
height: yExtent[1] - yExtent[0]
x: x,
y: y,
width: width,
height: height
}
});
if (hasAnimation) {
clipPath.shape[cartesian.getBaseAxis().isHorizontal() ? 'width' : 'height'] = 0;
clipPath.shape[isHorizontal ? 'width' : 'height'] = 0;
graphic.initProps(clipPath, {
shape: {
width: xExtent[1] - xExtent[0],
height: yExtent[1] - yExtent[0]
width: width,
height: height
}
}, seriesModel);
}
......@@ -241,7 +256,7 @@ define(function(require) {
// Stop symbol animation and sync with line points
// FIXME performance?
data.eachItemGraphicEl(function (el) {
el.stopSymbolAnimation(true);
el.stopAnimation(true);
});
// In the case data zoom triggerred refreshing frequently
......
......@@ -3,7 +3,6 @@ define(function (require) {
var Path = require('zrender/graphic/Path');
var vec2 = require('zrender/core/vector');
var bbox = require('zrender/core/bbox');
var mathMin = Math.min;
var mathMax = Math.max;
......@@ -56,16 +55,17 @@ define(function (require) {
scaleAndAdd(cp1, p, v, -smooth / 2);
// Smooth constraint
vec2Min(cp0, cp0, smoothMax);
vec2Max(cp0, cp0, smoothMin);
vec2Min(cp1, cp1, smoothMax);
vec2Max(cp1, cp1, smoothMin);
ctx.bezierCurveTo(
cp0[0], cp0[1],
cp1[0], cp1[1],
p[0], p[1]
);
// Smooth constraint
vec2Min(cp0, cp0, smoothMin);
vec2Max(cp0, cp0, smoothMax);
vec2Min(cp1, cp1, smoothMin);
vec2Max(cp1, cp1, smoothMax);
// cp0 of next segment
scaleAndAdd(cp0, p, v, smooth / 2);
}
......@@ -80,6 +80,22 @@ define(function (require) {
return k;
}
function getBoundingBox(points) {
var ptMin = [Infinity, Infinity];
var ptMax = [-Infinity, -Infinity];
for (var i = 0; i < points.length; i++) {
var pt = points[i];
if (pt[0] < ptMin[0]) { ptMin[0] = pt[0]; }
if (pt[1] < ptMin[1]) { ptMin[1] = pt[1]; }
if (pt[0] > ptMax[0]) { ptMax[0] = pt[0]; }
if (pt[1] > ptMax[1]) { ptMax[1] = pt[1]; }
}
return {
min: ptMin,
max: ptMax
};
}
return {
Polyline: Path.extend({
......@@ -106,14 +122,12 @@ define(function (require) {
var i = 0;
var len = points.length;
var ptMin = [];
var ptMax = [];
bbox.fromPoints(points, ptMin, ptMax);
var result = getBoundingBox(points);
while (i < len) {
i += drawSegment(
ctx, points, i, len, len,
1, ptMin, ptMax, shape.smooth
1, result.min, result.max, shape.smooth
) + 1;
}
}
......@@ -137,19 +151,16 @@ define(function (require) {
var i = 0;
var len = points.length;
var ptMin = [];
var ptMax = [];
bbox.fromPoints(points, ptMin, ptMax);
var bbox = getBoundingBox(points);
var stackedOnBBox = getBoundingBox(stackedOnPoints);
while (i < len) {
var k = drawSegment(
ctx, points, i, len, len,
1, ptMin, ptMax, shape.smooth
1, bbox.min, bbox.max, shape.smooth
);
drawSegment(
ctx, stackedOnPoints, i + k - 1, len, k,
-1, ptMin, ptMax, shape.stackedOnSmooth
-1, stackedOnBBox.min, stackedOnBBox.max, shape.stackedOnSmooth
);
i += k + 1;
......
......@@ -104,8 +104,15 @@ define(function (require) {
mpData.setItemLayout(idx, point);
var symbolSize = itemModel.getShallow('symbolSize');
if (typeof symbolSize === 'function') {
// FIXME 这里不兼容 ECharts 2.x,2.x 貌似参数是整个数据?
symbolSize = symbolSize(
mpModel.getRawValue(idx), mpModel.getDataParams(idx)
);
}
mpData.setItemVisual(idx, {
symbolSize: itemModel.getShallow('symbolSize'),
symbolSize: symbolSize,
color: itemModel.get('itemStyle.normal.color')
|| seriesData.getVisual('color'),
symbol: itemModel.getShallow('symbol')
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册