我正在try 将两条SVG路径合并为一条路径.通常的方法是,只要将d
个值加在一起就会得到一个路径,当我追加一个笔划时,它会产生相同的笔划,就像我没有合并路径一样.
Simplified Example:
Original Two Paths
我的实际路径确实包含Cubi Bezier函数,并且我需要用Python语言编写代码.
我正在try 将两条SVG路径合并为一条路径.通常的方法是,只要将d
个值加在一起就会得到一个路径,当我追加一个笔划时,它会产生相同的笔划,就像我没有合并路径一样.
Simplified Example:
Original Two Paths
我的实际路径确实包含Cubi Bezier函数,并且我需要用Python语言编写代码.
一个可行的解决方案是使用滤镜来勾勒出两个形状的轮廓,如下例所示:
svg{border:solid}
<svg stroke="black" fill="silver">
<g filter="url(#outline-red)">
<path d="M10 10v100h200Z" id="p"/>
<use href="#p" x="10" y="20"/>
</g>
<filter id="outline-red">
<feMorphology in="SourceAlpha" result="expanded"
operator="dilate" radius="3"/>
<feFlood flood-color="red" result="rd" />
<feComposite in ="rd" in2="expanded" operator="in" />
<feComposite in="SourceGraphic"/>
</filter>
</svg>
另一种 Select 是使用双倍粗细边框,并使用2个形状及其自身遮罩该组,如下例所示:
svg{border:solid;}
<svg >
<defs>
<g id="g">
<path d="M10 10v100h200Z" id="p"/>
<use href="#p" x="10" y="20"/>
</g>
<mask id="m">
<rect width="300" height="150" fill="white"/>
<use href="#g" />
</mask>
</defs>
<use href="#g" stroke="red" stroke-width="8" mask="url(#m)" />
</svg>