首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >翻转SVG箭头并使其指向正确?

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

Stack Overflow用户
提问于 2017-07-24 21:21:11
回答 2查看 2.4K关注 0票数 1

我有一个path元素和一个marker元素组合在一起,在SVG中创建一个箭头。但是,目前的箭头说我有点向左,但我需要用心向右指。我已经尝试了相当多的路径的d属性,但我不知道如何翻转它。

这是箭头的HTML:

代码语言:javascript
复制
<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>

这画了一个箭头,就像这样:

那么,如何翻转这个箭头并使其指向另一个方向呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-24 21:24:58

您必须将这个:M0,0 L0,8 L8,4 z转换为这个M8,0 L8,8 L0,4 z

只想让您知道为什么这样做是有效的:https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d

本质上,这是一组坐标。我只是在x轴上调换了一下

但老实说我想知道。如果它像你所描述的那样,那么箭头应该已经转过身了。也许矢量只是旋转了一下,而你是在向后画那条线。如果看不到整个svg,我就不能确定,但这无关紧要。这个坐标交换应该可以。

票数 2
EN

Stack Overflow用户

发布于 2017-07-25 11:22:34

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

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

现在翻转标记可能还行,但是你已经把所有的东西都颠倒过来了。这对你来说可能没问题,但以后可能会让你头疼。

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

代码语言:javascript
复制
<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>

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45281809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档