用于凹面 SVG 形状的 stroke-linejoin miter
stroke-linejoin miter for concave SVG shapes
正在努力创建一个 SVG,该 SVG 具有用于凹形的锐线连接。一个例子可能比文字更好:
我希望前两个(凹)形状的顶部贝塞尔曲线像后两个(凸)形状一样锐利地连接在一起。但是,我一直无法做到这一点。有没有人能赐教一下?
可以在 this codepen 找到这些形状。这是第一个形状的定义:
<svg width="130px" height="110px" version="1.1" xmlns="http://www.w3.org/2000/svg">
<path fill="#ffffff" stroke="#000000" stroke-width="5" stroke-linejoin="miter"
d="M 15 100
Q -10 62,
15 0
Q 50 80,
115 100
">
</path>
</svg>
提前致谢!
您似乎遇到了剪裁效果。
第一个形状简单地运行到最顶部的边缘,没有足够的 space 来显示尖点。而不是 15 0
尝试 15 5
。然后你会得到一些没有被截断的东西:
同样的技巧适用于第二条曲线。但不仅仅是一个 y 值,您需要调整两个 Q 元素,以:
Q 50 65,
65 10
Q 80 65,
但是第二条曲线上的剪裁略有不同。这是一个内部限制,而不是由绘图区域的形状强加的。因此,不是调整曲线,更简洁的方法是通过将此属性添加到您的路径来调整内部斜接剪裁:
stroke-miterlimit="10"
这会导致非常高的斜接,如果将黑色的原始路径覆盖在几乎相同的红色路径(只是斜接限制不同)上,您可以看到它:
正在努力创建一个 SVG,该 SVG 具有用于凹形的锐线连接。一个例子可能比文字更好:
我希望前两个(凹)形状的顶部贝塞尔曲线像后两个(凸)形状一样锐利地连接在一起。但是,我一直无法做到这一点。有没有人能赐教一下?
可以在 this codepen 找到这些形状。这是第一个形状的定义:
<svg width="130px" height="110px" version="1.1" xmlns="http://www.w3.org/2000/svg">
<path fill="#ffffff" stroke="#000000" stroke-width="5" stroke-linejoin="miter"
d="M 15 100
Q -10 62,
15 0
Q 50 80,
115 100
">
</path>
</svg>
提前致谢!
您似乎遇到了剪裁效果。
第一个形状简单地运行到最顶部的边缘,没有足够的 space 来显示尖点。而不是 15 0
尝试 15 5
。然后你会得到一些没有被截断的东西:
同样的技巧适用于第二条曲线。但不仅仅是一个 y 值,您需要调整两个 Q 元素,以:
Q 50 65,
65 10
Q 80 65,
但是第二条曲线上的剪裁略有不同。这是一个内部限制,而不是由绘图区域的形状强加的。因此,不是调整曲线,更简洁的方法是通过将此属性添加到您的路径来调整内部斜接剪裁:
stroke-miterlimit="10"
这会导致非常高的斜接,如果将黑色的原始路径覆盖在几乎相同的红色路径(只是斜接限制不同)上,您可以看到它: