antvis / G

💥 A flexible rendering engine for visualization.
https://g.antv.antgroup.com/
1.09k stars 203 forks source link

Support text background property #293

Closed zhanba closed 4 years ago

zhanba commented 4 years ago

What problem does this feature solve?

Support text background property like backgroundColor, backgroundPadding, backgroundImage ...etc

目前在基于graphin 的业务开发中想要实现edge label的背景色(其实是希望实现白色的背景色,让label文字显示在edge边上的时候,能挡住线,而不是线和文字重合在一起),感觉实现复杂,容易出bug,希望底层的g或g6能实现文字背景特性。

期望能讨论一下,这边可以投入时间来开发这个功能。

What does the proposed API look like?

group.addShape('text', {
  attrs: {
    backgroundColor: '#fff',
    backgroundPadding: 2
  },
});
dxq613 commented 4 years ago

这个可以在上层封装组件来实现,G 层面不会实现这个功能,会引起 渲染、包围和计算、拾取、动画一系列的改动。

zhanba commented 4 years ago

因为在业务里面实现了一版这个功能,感觉就是70%的g6代码加30%的自己定制代码,合在一起,不好维护,而且还有奇怪的bug。感觉就是必须完全理解render label的实现原理,才能写好这个background。后面就觉得这个是底层的能力,能不能在底层实现。 这个feature在g6层实现是否合理可行呢?

dengfuping commented 4 years ago
baizn commented 4 years ago

这个功能应该是放到 G6 这边的,G6 目前的实现方式是需要重写一下 drawLabel 方法,参考这个demo https://codesandbox.io/s/dazzling-shirley-42gdd ,的确可以在 G6 层把这个做了。

dengfuping commented 4 years ago

@zhanba 可以看下 G6 中的实现方案。