提交 65fa9e58 编写于 作者: K kener

resize center bug fix #133

上级 b082ea70
......@@ -91,7 +91,7 @@ option = {
{
name:'访问来源',
type:'pie',
center : [300, 200],
center : ['35%', 200],
radius : 80,
itemStyle : {
normal : {
......@@ -130,7 +130,7 @@ option = {
{
name:'访问来源',
type:'pie',
center : [300, 200],
center : ['35%', 200],
radius : [110, 140],
data:[
{value:335, name:'直达'},
......@@ -201,7 +201,7 @@ option = {
name:'访问来源',
type:'pie',
startAngle: 90,
center : [650, 200],
center : ['75%', 200],
radius : [80, 120],
itemStyle : {
normal : {
......
......@@ -93,7 +93,7 @@ option = {
{ text : '指标四' },
{ text : '指标五' }
],
center : [250,210],
center : ['25%',210],
radius : 150,
startAngle: 90,
splitNumber: 8,
......@@ -142,7 +142,7 @@ option = {
{ text : '化学', max : 108 },
{ text : '生物', max : 72 }
],
center : [document.getElementById('main').offsetWidth - 250, 210],
center : ['75%', 210],
radius : 150
}
],
......
......@@ -97,7 +97,7 @@ option = {
{text : '可用性', max : 100},
{text : '功能', max : 100}
],
center : [150,200],
center : ['25%',200],
radius : 80
},
{
......@@ -118,7 +118,7 @@ option = {
}
return res;
})(),
center : [document.getElementById('main').offsetWidth - 150,200],
center : ['75%', 200],
radius : 80
}
],
......
......@@ -41,12 +41,14 @@ define(function(require) {
function _buildShape() {
self.selectedMap = {};
_selected = {};
var center;
var pieCase; // 饼图箱子
_selectedMode = false;
for (var i = 0, l = series.length; i < l; i++) {
if (series[i].type == ecConfig.CHART_TYPE_PIE) {
series[i] = self.reformOption(series[i]);
center = self.parseCenter(series[i].center);
_selectedMode = _selectedMode || series[i].selectedMode;
_selected[i] = [];
if (self.deepQuery([series[i], option], 'calculable')) {
......@@ -56,8 +58,8 @@ define(function(require) {
zlevel : _zlevelBase,
hoverable : false,
style : {
x : series[i].center[0], // 圆心横坐标
y : series[i].center[1], // 圆心纵坐标
x : center[0], // 圆心横坐标
y : center[1], // 圆心纵坐标
r0 : series[i].radius[0] <= 10 // 圆环内半径
? 0 : series[i].radius[0] - 10,
r : series[i].radius[1] + 10, // 圆环外半径
......@@ -224,6 +226,7 @@ define(function(require) {
) {
var serie = series[seriesIndex];
var data = serie.data[dataIndex];
var center = self.parseCenter(serie.center);
// 多级控制
var normalColor = self.deepQuery(
......@@ -241,8 +244,8 @@ define(function(require) {
zlevel : _zlevelBase,
clickable : true,
style : {
x : serie.center[0], // 圆心横坐标
y : serie.center[1], // 圆心纵坐标
x : center[0], // 圆心横坐标
y : center[1], // 圆心纵坐标
r0 : r0, // 圆环内半径
r : r1, // 圆环外半径
startAngle : startAngle,
......@@ -315,12 +318,12 @@ define(function(require) {
'itemStyle.normal.label.textStyle.baseline'
) || 'middle';
sector.style.textX = Math.round(
serie.center[0]
center[0]
+ (r1 + r0) / 2
* zrMath.cos((startAngle + endAngle) / 2, true)
);
sector.style.textY = Math.round(
serie.center[1]
center[1]
- (r1 + r0) / 2
* zrMath.sin((startAngle + endAngle) / 2, true)
);
......@@ -353,12 +356,12 @@ define(function(require) {
'itemStyle.normal.label.textStyle.baseline'
) || 'middle';
sector.highlightStyle.textX = Math.round(
serie.center[0]
center[0]
+ (r1 + r0) / 2
* zrMath.cos((startAngle + endAngle) / 2, true)
);
sector.highlightStyle.textY = Math.round(
serie.center[1]
center[1]
- (r1 + r0) / 2
* zrMath.sin((startAngle + endAngle) / 2, true)
);
......@@ -387,6 +390,7 @@ define(function(require) {
) {
var serie = series[seriesIndex];
var data = serie.data[dataIndex];
// 特定状态下是否需要显示文本标签
if (_needLabel(serie, data, isEmphasis)) {
var status = isEmphasis ? 'emphasis' : 'normal';
......@@ -404,8 +408,9 @@ define(function(require) {
var labelControl = itemStyle[status].label;
var textStyle = labelControl.textStyle || {};
var centerX = serie.center[0]; // 圆心横坐标
var centerY = serie.center[1]; // 圆心纵坐标
var center = self.parseCenter(serie.center);
var centerX = center[0]; // 圆心横坐标
var centerY = center[1]; // 圆心纵坐标
var midAngle = ((endAngle + startAngle) / 2) % 360; // 角度中值
var radius; // 标签位置半径
var textAlign;
......@@ -549,8 +554,9 @@ define(function(require) {
var labelLineControl = itemStyle[status].labelLine;
var lineStyle = labelLineControl.lineStyle || {};
var centerX = serie.center[0]; // 圆心横坐标
var centerY = serie.center[1]; // 圆心纵坐标
var center = self.parseCenter(serie.center);
var centerX = center[0]; // 圆心横坐标
var centerY = center[1]; // 圆心纵坐标
// 视觉引导线起点半径
var midRadius = r1;
// 视觉引导线终点半径
......@@ -625,9 +631,7 @@ define(function(require) {
'recursive' : true
}
);
//console.log(opt)
opt.center = self.parseCenter(opt.center);
// 传数组实现环形图,[内半径,外半径],传单个则默认为外半径为
if (typeof opt.radius == 'undefined') {
opt.radius = [
......@@ -676,18 +680,11 @@ define(function(require) {
if (newOption) {
option = newOption;
series = option.series;
self.backupAdaptiveParams(series, ['center', 'radius']);
}
self.clear();
_buildShape();
}
function resize() {
// 复位录原始定义
self.restoreAdaptiveParams(series, ['center', 'radius']);
refresh();
}
/**
* 动态数据增加动画
* 心跳效果
......@@ -1146,7 +1143,6 @@ define(function(require) {
// 接口方法
self.init = init;
self.refresh = refresh;
self.resize = resize;
self.addDataAnimation = addDataAnimation;
self.animation = animation;
self.onclick = onclick;
......
......@@ -299,32 +299,6 @@ define(function(require) {
return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}
// 记录自适应原始定义,resize用
function backupAdaptiveParams(series, attrs, isAll) {
for (var i = 0, l = series.length; i < l; i++) {
if (isAll || series[i].type == self.type) {
for (var j = 0, k = attrs.length; j < k; j++) {
series[i]['__' + attrs[i]] = zrUtil.clone(
series[i][attrs[i]]
);
}
}
}
}
// 还原自适应原始定义,resize用
function restoreAdaptiveParams(series, attrs, isAll) {
for (var i = 0, l = series.length; i < l; i++) {
if (isAll || series[i].type == self.type) {
for (var j = 0, k = attrs.length; j < k; j++) {
series[i][attrs[i]] = zrUtil.clone(
series[i]['__' + attrs[i]]
);
}
}
}
}
// 亚像素优化
function subPixelOptimize(position, lineWidth) {
position += position == Math.ceil(position) ? 0.5 : 0;
......@@ -370,8 +344,6 @@ define(function(require) {
self.parseCenter = parseCenter;
self.clear = clear;
self.dispose = dispose;
self.backupAdaptiveParams = backupAdaptiveParams;
self.restoreAdaptiveParams = restoreAdaptiveParams;
self.resize = resize;
}
......
......@@ -98,7 +98,7 @@ define(
var splitArea = item.splitArea;
var splitLine = item.splitLine;
var center = item.center;
var center = getCenter(index);
var splitNumber = item.splitNumber;
var strokeColor = splitLine.lineStyle.color;
......@@ -129,7 +129,7 @@ define(
var style;
var newStyle;
var splitNumber = self.deepQuery(_queryTarget, 'splitNumber');
var center = item.center;
var center = getCenter(index);
var vector;
var value;
var text;
......@@ -189,7 +189,7 @@ define(
var __ecIndicator = item.__ecIndicator;
var vector;
var indicator = self.deepQuery(_queryTarget, 'indicator');
var center = item.center;
var center = getCenter(index);
var style;
var textAlign;
var name;
......@@ -282,7 +282,7 @@ define(
function _addDropBox(index) {
var index = index || 0;
var item = polar[index];
var center = item.center;
var center = getCenter(index);
var __ecIndicator = item.__ecIndicator;
var len = __ecIndicator.length;
var pointList = [];
......@@ -452,7 +452,7 @@ define(
*/
function getCenter(index) {
var index = index || 0;
return polar[index].center;
return self.parseCenter(polar[index].center);
}
/**
......@@ -772,8 +772,6 @@ define(
}
);
opt.center = self.parseCenter(opt.center);
if (!opt.radius) {
opt.radius = Math.floor(
Math.min(_width, _height) / 2 - 50
......@@ -800,7 +798,7 @@ define(
}
var indicator = polar[polarIndex].__ecIndicator[indicatorIndex];
var center = polar[polarIndex].center;
var center = getCenter(polarIndex);
var vector = indicator.vector;
var max = indicator.value.max;
var min = indicator.value.min;
......@@ -913,20 +911,12 @@ define(
option = newOption;
polar = option.polar;
series = option.series;
self.backupAdaptiveParams(polar,['center', 'radius'],true);
}
self.clear();
_buildShape();
}
function resize() {
// 复位录原始定义
self.restoreAdaptiveParams(polar, ['center', 'radius'], true);
refresh();
}
self.refresh = refresh;
self.resize = resize;
self.reformOption = reformOption;
self.getVector = getVector;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册