You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by ov...@apache.org on 2022/07/26 06:47:12 UTC
[echarts] branch fix-subpixel created (now 749b64e94)
This is an automated email from the ASF dual-hosted git repository.
ovilia pushed a change to branch fix-subpixel
in repository https://gitbox.apache.org/repos/asf/echarts.git
at 749b64e94 fix(bar-race): provide subPixelOptimize option to solve #14679
This branch includes the following new commits:
new 749b64e94 fix(bar-race): provide subPixelOptimize option to solve #14679
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org
[echarts] 01/01: fix(bar-race): provide subPixelOptimize option to solve #14679
Posted by ov...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ovilia pushed a commit to branch fix-subpixel
in repository https://gitbox.apache.org/repos/asf/echarts.git
commit 749b64e94d53ecc5e4ac4fc217762cae86c2fc5b
Author: Ovilia <zw...@gmail.com>
AuthorDate: Tue Jul 26 14:46:14 2022 +0800
fix(bar-race): provide subPixelOptimize option to solve #14679
---
src/component/axis/AxisBuilder.ts | 24 ++++++++++++++++--------
src/component/axis/CartesianAxisView.ts | 14 ++++++++++++--
src/component/axis/SingleAxisView.ts | 7 ++++++-
src/coord/axisCommonTypes.ts | 1 +
test/bar-race.html | 3 ++-
5 files changed, 37 insertions(+), 12 deletions(-)
diff --git a/src/component/axis/AxisBuilder.ts b/src/component/axis/AxisBuilder.ts
index b0e31e08f..e338453ed 100644
--- a/src/component/axis/AxisBuilder.ts
+++ b/src/component/axis/AxisBuilder.ts
@@ -343,13 +343,17 @@ const builders: Record<'axisLine' | 'axisTickLabel' | 'axisName', AxisElementsBu
},
axisTickLabel(opt, axisModel, group, transformGroup) {
+ let subPixelOptimize = axisModel.get('subPixelOptimize');
+ if (subPixelOptimize == null) {
+ subPixelOptimize = true;
+ }
- const ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);
+ const ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt, subPixelOptimize);
const labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);
fixMinMaxLabelShow(axisModel, labelEls, ticksEls);
- buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);
+ buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection, subPixelOptimize);
// This bit fixes the label overlap issue for the time chart.
// See https://github.com/apache/echarts/issues/14266 for more.
@@ -611,7 +615,8 @@ function createTicks(
tickTransform: matrixUtil.MatrixArray,
tickEndCoord: number,
tickLineStyle: PathStyleProps,
- anidPrefix: string
+ anidPrefix: string,
+ subPixelOptimize: boolean
) {
const tickEls = [];
const pt1: number[] = [];
@@ -630,7 +635,7 @@ function createTicks(
}
// Tick line, Not use group transform to have better line draw
const tickEl = new graphic.Line({
- subPixelOptimize: true,
+ subPixelOptimize,
shape: {
x1: pt1[0],
y1: pt1[1],
@@ -652,7 +657,8 @@ function buildAxisMajorTicks(
group: graphic.Group,
transformGroup: graphic.Group,
axisModel: AxisBaseModel,
- opt: AxisBuilderCfg
+ opt: AxisBuilderCfg,
+ subPixelOptimize: boolean
) {
const axis = axisModel.axis;
@@ -676,7 +682,7 @@ function buildAxisMajorTicks(
{
stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])
}
- ), 'ticks');
+ ), 'ticks', subPixelOptimize);
for (let i = 0; i < ticksEls.length; i++) {
group.add(ticksEls[i]);
@@ -689,7 +695,8 @@ function buildAxisMinorTicks(
group: graphic.Group,
transformGroup: graphic.Group,
axisModel: AxisBaseModel,
- tickDirection: number
+ tickDirection: number,
+ subPixelOptimize: boolean
) {
const axis = axisModel.axis;
@@ -719,7 +726,8 @@ function buildAxisMinorTicks(
for (let i = 0; i < minorTicksCoords.length; i++) {
const minorTicksEls = createTicks(
- minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i
+ minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i,
+ subPixelOptimize
);
for (let k = 0; k < minorTicksEls.length; k++) {
group.add(minorTicksEls[k]);
diff --git a/src/component/axis/CartesianAxisView.ts b/src/component/axis/CartesianAxisView.ts
index e04039890..e1a74b6df 100644
--- a/src/component/axis/CartesianAxisView.ts
+++ b/src/component/axis/CartesianAxisView.ts
@@ -139,6 +139,12 @@ const axisElementBuilders: Record<typeof selfBuilderAttrs[number], AxisElementBu
const p2 = [];
const lineStyle = lineStyleModel.getLineStyle();
+
+ let subPixelOptimize = axisModel.get('subPixelOptimize');
+ if (subPixelOptimize == null) {
+ subPixelOptimize = true;
+ }
+
for (let i = 0; i < ticksCoords.length; i++) {
const tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);
@@ -159,7 +165,7 @@ const axisElementBuilders: Record<typeof selfBuilderAttrs[number], AxisElementBu
const tickValue = ticksCoords[i].tickValue;
axisGroup.add(new graphic.Line({
anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,
- subPixelOptimize: true,
+ subPixelOptimize,
autoBatch: true,
shape: {
x1: p1[0],
@@ -193,6 +199,10 @@ const axisElementBuilders: Record<typeof selfBuilderAttrs[number], AxisElementBu
const lineStyle = lineStyleModel.getLineStyle();
+ let subPixelOptimize = axisModel.get('subPixelOptimize');
+ if (subPixelOptimize == null) {
+ subPixelOptimize = true;
+ }
for (let i = 0; i < minorTicksCoords.length; i++) {
for (let k = 0; k < minorTicksCoords[i].length; k++) {
@@ -213,7 +223,7 @@ const axisElementBuilders: Record<typeof selfBuilderAttrs[number], AxisElementBu
axisGroup.add(new graphic.Line({
anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,
- subPixelOptimize: true,
+ subPixelOptimize,
autoBatch: true,
shape: {
x1: p1[0],
diff --git a/src/component/axis/SingleAxisView.ts b/src/component/axis/SingleAxisView.ts
index 06cf5e326..d206fc8cd 100644
--- a/src/component/axis/SingleAxisView.ts
+++ b/src/component/axis/SingleAxisView.ts
@@ -109,6 +109,11 @@ const axisElementBuilders: Record<typeof selfBuilderAttrs[number], AxisElementBu
const p1 = [];
const p2 = [];
+ let subPixelOptimize = axisModel.get('subPixelOptimize');
+ if (subPixelOptimize == null) {
+ subPixelOptimize = true;
+ }
+
for (let i = 0; i < ticksCoords.length; ++i) {
const tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);
if (isHorizontal) {
@@ -126,7 +131,7 @@ const axisElementBuilders: Record<typeof selfBuilderAttrs[number], AxisElementBu
const colorIndex = (lineCount++) % lineColors.length;
splitLines[colorIndex] = splitLines[colorIndex] || [];
splitLines[colorIndex].push(new graphic.Line({
- subPixelOptimize: true,
+ subPixelOptimize,
shape: {
x1: p1[0],
y1: p1[1],
diff --git a/src/coord/axisCommonTypes.ts b/src/coord/axisCommonTypes.ts
index e3241cb02..a3309a18c 100644
--- a/src/coord/axisCommonTypes.ts
+++ b/src/coord/axisCommonTypes.ts
@@ -63,6 +63,7 @@ export interface AxisBaseOptionCommon extends ComponentOption,
splitLine?: SplitLineOption;
minorSplitLine?: MinorSplitLineOption;
splitArea?: SplitAreaOption;
+ subPixelOptimize?: boolean;
/**
* Min value of the axis. can be:
diff --git a/test/bar-race.html b/test/bar-race.html
index 766ae138e..9916d7738 100644
--- a/test/bar-race.html
+++ b/test/bar-race.html
@@ -75,7 +75,8 @@ under the License.
formatter: function (n) {
return Math.round(n);
}
- }
+ },
+ subPixelOptimize: false
},
dataset: {
source: data.slice(1).filter(d => {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org