我正在构建一个 SVG 图像(树形图,带有节点的椭圆),我想将椭圆与线条连接起来,但我希望线条从椭圆的边缘开始。由于计算边缘落在哪里以及确切地开始或结束线条非常困难,我正在从椭圆的中心绘制线条并寻找一种方法将椭圆叠加在线条上,以便它掩盖重叠部分,使线条看起来只从椭圆的边缘开始。因为 SVG 通过元素顺序实现 z 顺序,所以如果我先创建连接线然后创建椭圆,则可以,除了...
...我希望椭圆为蓝色或红色,填充不透明度 =“0.15”,但是当我这样做时,线条会显示出来。当然,低不透明度的东西不能完全掩盖它所覆盖的东西是有道理的,但我很难弄清楚如何才能获得我想要的效果。我找到了一个可行的解决方案:对于我想要的每个椭圆,我首先创建一个大小和位置相同的椭圆,白色填充和不透明度为 1,并在它们重叠的地方完全掩盖连接线。然后我将我真正想要渲染的椭圆叠加在白色椭圆上,填充蓝色或红色,不透明度为 0.15。这看起来是我想要的样子,但感觉很笨拙。有没有我忽略的优雅解决方案?