html - 翻转 SVG 箭头并使其指向正确?

标签 html svg

我有一个路径元素与一个标记元素相结合,以在 SVG 中创建一个箭头。但是,我的当前箭头指向左边,但我需要注意指向右边。我已经对路径的 d 属性做了很多尝试,但我不知道如何翻转它。

所以这是箭头的 HTML:

<defs>
    <marker id="arrow-5" orient="auto" markerWidth="10" markerHeight="10" refX="1" refY="4">
        <path d="M0,0 L0,8 L8,4 z" fill="#5a5a5a"></path>
    </marker>
</defs>

然后画出这样的箭头:

Flipped arrow

那么翻转这个箭头并使其指向另一个方向的方法是什么?

最佳答案

标记被定义为使其正 X 轴旋转以指向路径行进的方向。

您的原始标记设计得很好 - 它指向正确的方向。所以这意味着你图片中的路径必须从右到左,你正在使用 marker-start="url(#arrow-5)" 将箭头放在图片的右手端你的道路。

暂时翻转标记可能没问题,但您已将所有内容放回到前面。这对您来说可能没问题,但以后可能会引起头痛。

更好的解决方案是翻转你的路径,而不是你的标记。

<svg width="400" height="300">
  <defs>
    <marker id="arrow-5" orient="auto" markerWidth="10" markerHeight="10" refX="1" refY="4">
        <path d="M0,0 L0,8 L8,4 z" fill="#5a5a5a"></path>
    </marker>
  </defs>
  
  <path d="M 25,100 L 350,200" fill="none" stroke="#5a5a5a" stroke-width="4" marker-end="url(#arrow-5)"/>
</svg>

关于html - 翻转 SVG 箭头并使其指向正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45281809/

相关文章:

javascript - 修复 Firefox/Chrome 中的 SVG 渲染差异

javascript - D3.js - "svg:"中的 "svg:rect"是必须的吗?

html - 定位图片替代文字

jQuery noob : (this). replacewith 我做错了吗?

javascript - 在索引达到特定数字后,如何在每个循环中重置索引

html - 页脚不会居中

html - 在标题中添加 Logo 和其他图像

javascript - 使用velocity.js 对 SVG 元素进行动画处理

javascript - 文本未在 d3 可视化中呈现

css - 如何制作带边框的梯形