You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by su...@apache.org on 2019/01/12 21:55:29 UTC
[incubator-echarts] 04/05: migrate the fix of #9657 (73af4bf)
This is an automated email from the ASF dual-hosted git repository.
sushuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git
commit 8dad11fab204dbab758869556d96cae7fa63fec5
Author: sushuang <su...@gmail.com>
AuthorDate: Sun Jan 13 05:45:30 2019 +0800
migrate the fix of #9657 (73af4bf)
---
src/chart/pie/labelLayout.js | 33 +++++++++++++++++++--------------
test/tmp-base.html | 4 +---
2 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/src/chart/pie/labelLayout.js b/src/chart/pie/labelLayout.js
index e0b69b8..3244673 100644
--- a/src/chart/pie/labelLayout.js
+++ b/src/chart/pie/labelLayout.js
@@ -26,7 +26,6 @@ function adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight) {
return a.y - b.y;
});
- // 压
function shiftDown(start, end, delta, dir) {
for (var j = start; j < end; j++) {
list[j].y += delta;
@@ -42,7 +41,6 @@ function adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight) {
shiftUp(end - 1, delta / 2);
}
- // 弹
function shiftUp(end, delta) {
for (var j = end; j >= 0; j--) {
list[j].y -= delta;
@@ -56,18 +54,14 @@ function adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight) {
function changeX(list, isDownList, cx, cy, r, dir) {
var lastDeltaX = dir > 0
- ? isDownList // 右侧
- ? Number.MAX_VALUE // 下
- : 0 // 上
- : isDownList // 左侧
- ? Number.MAX_VALUE // 下
- : 0; // 上
+ ? isDownList // right-side
+ ? Number.MAX_VALUE // down
+ : 0 // up
+ : isDownList // left-side
+ ? Number.MAX_VALUE // down
+ : 0; // up
for (var i = 0, l = list.length; i < l; i++) {
- // Not change x for center label
- if (list[i].position === 'center') {
- continue;
- }
var deltaY = Math.abs(list[i].y - cy);
var length = list[i].len;
var length2 = list[i].len2;
@@ -78,11 +72,11 @@ function adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight) {
)
: Math.abs(list[i].x - cx);
if (isDownList && deltaX >= lastDeltaX) {
- // 右下,左下
+ // right-down, left-down
deltaX = lastDeltaX - 10;
}
if (!isDownList && deltaX <= lastDeltaX) {
- // 右上,左上
+ // right-up, left-up
deltaX = lastDeltaX + 10;
}
@@ -122,6 +116,9 @@ function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight) {
var leftList = [];
var rightList = [];
for (var i = 0; i < labelLayoutList.length; i++) {
+ if (isPositionCenter(labelLayoutList[i])) {
+ continue;
+ }
if (labelLayoutList[i].x < cx) {
leftList.push(labelLayoutList[i]);
}
@@ -134,6 +131,9 @@ function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight) {
adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight);
for (var i = 0; i < labelLayoutList.length; i++) {
+ if (isPositionCenter(labelLayoutList[i])) {
+ continue;
+ }
var linePoints = labelLayoutList[i].linePoints;
if (linePoints) {
var dist = linePoints[1][0] - linePoints[2][0];
@@ -149,6 +149,11 @@ function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight) {
}
}
+function isPositionCenter(layout) {
+ // Not change x for center label
+ return layout.position === 'center';
+}
+
export default function (seriesModel, r, viewWidth, viewHeight) {
var data = seriesModel.getData();
var labelLayoutList = [];
diff --git a/test/tmp-base.html b/test/tmp-base.html
index 3f3693c..fb3a3ba 100644
--- a/test/tmp-base.html
+++ b/test/tmp-base.html
@@ -44,8 +44,6 @@ under the License.
<script>
- var chart;
- var myChart;
var option;
require([
@@ -55,7 +53,7 @@ under the License.
// $.getJSON('./data/nutrients.json', function (data) {
// });
- chart = myChart = testHelper.create(echarts, 'main0', {
+ var chart = testHelper.create(echarts, 'main0', {
option: option
});
});
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org