100pah commented on pull request #15405:
URL: https://github.com/apache/echarts/pull/15405#issuecomment-926140050


   
   I have made a "draggable" [test 
case](https://echarts-try.surge.sh/graph-self-loop-old/graph-self-loop.html) to 
cover scenarios as much as possible.
   
   ## I've found that there are those issues:
   1. In some of the angle the direction of the self-loop edge is not expected.
   <img width="246" alt="Screen Shot 2021-09-24 at 4 37 10 AM" 
src="https://user-images.githubusercontent.com/1956569/134580288-71affdc1-28b2-4828-af21-a4cb718c11aa.png";>
   
   
   2. When scaling the graph, the label fly to wrong place.
   
   3. The rotate of the the arrows are not correct.
   <img width="245" alt="Screen Shot 2021-09-24 at 4 39 02 AM" 
src="https://user-images.githubusercontent.com/1956569/134580529-4be3639b-bf37-4a3a-a5d1-4c2ed056212b.png";>
   
   
   ## A PR-fix: https://github.com/HCLacids/echarts/pull/1 to fix this PR
   This [PR-fix](https://github.com/HCLacids/echarts/pull/1) fixed the issue 
`1` above, and add test cases.
   
   Before that PR-fix: 
https://echarts-try.surge.sh/graph-self-loop-old/graph-self-loop.html
   After that PR-fix: 
https://echarts-try.surge.sh/graph-self-loop/graph-self-loop.html
   
   
   ## About curveness
   
   At present, the curveness can be controlled by two ways:
   (A) [autoCurveness: 
true](https://echarts.apache.org/zh/option.html#series-graph.autoCurveness)
   (B) 
[lineStyle.curveness](https://echarts.apache.org/zh/option.html#series-graph.lineStyle.curveness).
   `lineStyle.curveness` can be set on the whole series:
   ```js
   series: {
       type: 'graph',
       lineStyle: {
           curveness: 0.5
       }
   }
   ```
   or on some certain edges:
   ```js
   series: {
       type: 'graph',
       edges: [{
           source: 1,
           target: 4,
           lineStyle: {
               curveness: 0.7
           }
       }, {
           source: 1
           target: 4
       }]
   }
   ```
   When `lineStyle.curveness` is set to some edge, `autoCurveness` will not be 
accepted to that edge. Basically it's implemented by code like this:
   ```js
   const curveness = zrUtil.retrieve3(
       edge.getModel<GraphEdgeItemOption>().get(['lineStyle', 'curveness']),
       -getCurvenessForEdge(edge, seriesModel, index, true),
       0
   );
   ```
   + `focus: 'adjacency'`
   ```js
   emphasis: {
       focus: 'adjacency'
   },
   ```
   
   But I think we do not need to support `autoCurveness` in self-loop edges if 
the we accept the layout in this 
[PR-fix](https://github.com/HCLacids/echarts/pull/1).
   
   
   ---
   
   @HCLacids Could the [PR-fix](https://github.com/HCLacids/echarts/pull/1) be 
approved ?
   
   Any issue can  be discuessed.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@echarts.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@echarts.apache.org
For additional commands, e-mail: commits-h...@echarts.apache.org

Reply via email to