提交 f20b82d5 编写于 作者: L lang

Fix pie label layout bug in roseType. Fix #2910

上级 eb7f494f
...@@ -53,11 +53,12 @@ define(function (require) { ...@@ -53,11 +53,12 @@ define(function (require) {
continue; continue;
} }
var deltaY = Math.abs(list[i].y - cy); var deltaY = Math.abs(list[i].y - cy);
var length = list[i].length; var length = list[i].len;
var length2 = list[i].len2;
var deltaX = (deltaY < r + length) var deltaX = (deltaY < r + length)
? Math.sqrt( ? Math.sqrt(
(r + length + 20) * (r + length + 20) (r + length + length2) * (r + length + length2)
- Math.pow(list[i].y - cy, 2) - deltaY * deltaY
) )
: Math.abs(list[i].x - cx); : Math.abs(list[i].x - cx);
if (isDownList && deltaX >= lastDeltaX) { if (isDownList && deltaX >= lastDeltaX) {
...@@ -97,8 +98,8 @@ define(function (require) { ...@@ -97,8 +98,8 @@ define(function (require) {
upList.push(list[i]); upList.push(list[i]);
} }
} }
changeX(downList, true, cx, cy, r, dir);
changeX(upList, false, cx, cy, r, dir); changeX(upList, false, cx, cy, r, dir);
changeX(downList, true, cx, cy, r, dir);
} }
function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight) { function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight) {
...@@ -113,8 +114,8 @@ define(function (require) { ...@@ -113,8 +114,8 @@ define(function (require) {
} }
} }
adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight);
adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight); adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight);
adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight);
for (var i = 0; i < labelLayoutList.length; i++) { for (var i = 0; i < labelLayoutList.length; i++) {
var linePoints = labelLayoutList[i].linePoints; var linePoints = labelLayoutList[i].linePoints;
...@@ -173,15 +174,13 @@ define(function (require) { ...@@ -173,15 +174,13 @@ define(function (require) {
var x1 = (isLabelInside ? layout.r / 2 * dx : layout.r * dx) + cx; var x1 = (isLabelInside ? layout.r / 2 * dx : layout.r * dx) + cx;
var y1 = (isLabelInside ? layout.r / 2 * dy : layout.r * dy) + cy; var y1 = (isLabelInside ? layout.r / 2 * dy : layout.r * dy) + cy;
// For roseType
labelLineLen += r - layout.r;
textX = x1 + dx * 3; textX = x1 + dx * 3;
textY = y1 + dy * 3; textY = y1 + dy * 3;
if (!isLabelInside) { if (!isLabelInside) {
var x2 = x1 + dx * labelLineLen; // For roseType
var y2 = y1 + dy * labelLineLen; var x2 = x1 + dx * (labelLineLen + r - layout.r);
var y2 = y1 + dy * (labelLineLen + r - layout.r);
var x3 = x2 + ((dx < 0 ? -1 : 1) * labelLineLen2); var x3 = x2 + ((dx < 0 ? -1 : 1) * labelLineLen2);
var y3 = y2; var y3 = y2;
...@@ -207,8 +206,8 @@ define(function (require) { ...@@ -207,8 +206,8 @@ define(function (require) {
y: textY, y: textY,
position: labelPosition, position: labelPosition,
height: textRect.height, height: textRect.height,
length: labelLineLen, len: labelLineLen,
length2: labelLineLen2, len2: labelLineLen2,
linePoints: linePoints, linePoints: linePoints,
textAlign: textAlign, textAlign: textAlign,
verticalAlign: 'middle', verticalAlign: 'middle',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册