如何重用 <defs> 标签中定义的不同维度的 <marker>?

How to reuse <marker> defined in <defs> tag with different dimensions?

假设我在标签中包含一个已定义的标签,例如:

<svg>
    <defs>
        <marker markerUnits="userSpaceOnUse" markerWidth="16" markerHeight="16">
            ...
        </marker>
    </defs>
</svg>

请注意,已应用 markerUnits、markerWidth 和 markerHeight,因此标记的大小与应用标记的路径的厚度无关。

但是宽度和高度似乎是硬编码的,当我用 marker-endmarker-start 应用它时,我没有机会设置标记的尺寸。

有没有办法通过维度自定义重用标记?

没有。 markerUnits="userSpaceOnUse" 类型的标记完全按照定义呈现。 您不能在每次使用时设置它们的大小。

唯一的选择是使用 markerUnits="strokeWidth" 标记。它们被缩放以匹配 stroke-width 值。