浏览器渲染时,SVG中的箭头不会旋转

我创建了一个SVG文件,在inkscape中看起来像这样:

在这里输入图像描述

但是当我通过浏览器渲染它时,箭头会被搞乱:

这(上面)是实际的svg(链接),如果它在你的浏览器中正确呈现,这里是我如何看到它(这次它是一个PNG截图):

在这里输入图像描述

最新的Firefox和Chrome也一样。

这个文件是在Windows的inkscape 0.48中创建的,当我在inkscape中重新打开它时,它正确呈现。 有没有办法让浏览器旋转箭头?


Chrome,Firefox,Inkscape和Wikimedia都有这方面的bug报告。 事实证明,只有一个手柄(曲线开头的那个手柄)的长度为零时,某些渲染器会使箭头方向错误。 目前,Firefox,Inkscape和LibreOffice Write写得对,而Chrome则错了。

要创建这样一条线的示例,请在Inkscape中绘制一条线,然后添加一个弯曲的中点。 Inkscape然后使两段贝塞尔曲线,但末端段具有零长度句柄。 如果您然后删除中点,Inkscape将尝试匹配曲线,并为端点创建非零长度的句柄。

在2015年报告为Firefox中的错误,并进行修复

在2015年被报告为Chrome中的错误,并且没有修复

在2006年被报告为Inkscape中的错误,归咎于用户,并在2009年关闭为“过时”

在2015年被维基媒体报道为我的错误

讨论SVG规范中的歧义


我在Inkscape中注意到的一个修复方法是首先选择“按节点编辑路径”选项,然后选择每个端点并从路径编辑工具栏中选择“使所选节点平滑”的选项。


我找到了解决方案:

问题在于,对于这些线条,使用了贝塞尔曲线,即使线条是笔直的,也会造成问题。 一旦我用“图表连接器”替换曲线,问题就消失了。

链接地址: http://www.djcxy.com/p/56949.html

上一篇: Arrows in SVG aren't rotated when rendered by browsers

下一篇: Converting inkscape svg to raphael problems