apache / apache/echarts

[Bug] SOLVED the issue caused by hidden 3D axes.

Open
#20,583 0 comments 0 reactions 0 assignees View on GitHub
bug en pending
Dominant language
TypeScript
Stars
67.3k
Forks
19.8k
Avg merge
11d 14h
Merged PRs (30d)
8

Description

### Version

5.5.1

### Link to Minimal Reproduction

https://codepen.io/akiastyle/pen/LEPRddW

### Steps to Reproduce

When I create a 3D bar and hide all axes to customize the chart's view and the XY plane, I encounter a large number of errors, which increases the execution time. I am using vanilla JavaScript.

![{739CAF4B-42E9-4279-A903-6C7D8173B310}](https://github.com/user-attachments/assets/7b4e60e4-4f87-4017-966e-53beebbb75a3)

### Current Behavior

I resolved this issue by modifying the code in echarts-gl.min.js. The error was caused by null axis values.
The correction I made is specifically required only in the explained rows, even though similar changes might need to be applied to other rows as well. My activity was limited to the modifications mentioned above.

### Expected Behavior

I resolved the issue by changing specific lines in the echarts-gl.min.js code. The problem was caused by null axis values, and I addressed it as follows:

On.prototype = {
constructor: On,
add: function (e) {
return Et.add(this.array, this.array, e.array), this._dirty = !0, this },
set: function (e, t, r, i) {
return this.array[0] = e,
this.array[1] = t,
this.array[2] = r,
this.array[3] = i,
this._dirty = !0, this },
setArray: function (e) {
return
this.array[0] = e?.[0] ?? 0, <---------------------------- this.array[0] = e[0],
this.array[1] = e?.[1] ?? 0, <---------------------------- this.array[1] = e[1],
this.array[2] = e?.[2] ?? 0, <---------------------------- this.array[2] = e[2],
this.array[3] = e?.[3] ?? 0, <---------------------------- this.array[3] = e[3],
this._dirty = !0,
this
},

AND

this._axes.forEach((function(i) {
for (var n = i.axisLineCoords, a = (i.labelsMesh.geometry,
0); a < t.length; a++)
t[a].setArray(n?[a] ?? 0), <---------------------------- t[a].setArray(n[a]),
t[a].w = 1,
t[a].transformMat4(i.rootNode.worldTransform).transformMat4(e.viewMatrix).transformMat4(e.projectionMatrix),
t[a].x /= t[a].w,
t[a].y /= t[a].w;
var o, s, l = t[1].x - t[0].x, h = t[1].y - t[0].y, u = (t[1].x + t[0].x) / 2, c = (t[1].y + t[0].y) / 2;
Math.abs(h / l) < .5 ? (o = "center",
s = c > r.y ? "bottom" : "top") : (s = "middle",
o = u > r.x ? "left" : "right"),
i.setSpriteAlign(o, s, this._api)
}

### Environment

```markdown
- OS:
- Browser: chrome latest
- Framework: none
```

### Any additional comments?

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.