svg中path的直线命令使用

path路径

<path>元素是SVG基本形状中最强大的一个。可以使用它来创建线条,曲线,弧形等等。

另外,path只需要设定很少的点,就可以创建平滑流畅的线条(比如曲线)。虽然polygon元素也可以实现类似的效果,但是必须设置大量的点(点越密集,越接近连续,看起来越平滑流畅),这种做法不能够放大(放大后,点的离散更明显)。所以在绘制SVG时,对路径的良好理解更重要。

path元素的形状是通过属性d定义的,属性d的值是一个“命令 + 参数”的序列。

每一个命令都用一个关键字母来表示,比如,字母“M”表示的是“Move to”命令,当解析器读到这个命令时,它就知道你是打算移动到某个点。跟在命令字母后面,是你需要移动到的那个点的 x 和 y 轴坐标。比如移动到(10, 10)这个点的命令。应该写成M 10 10 。这一段字符结束后,解析器就会去读下一段命令。每一个命令都有两种表示方式,一种使用大写字母,表示采用绝对定位。另一种是用小写字母,表示采用相对定位(例如,从上一个点开始,向上移动10px,向左移动7px)。

  • 绝对定位:大写字母 x y
  • 相对定位:小写字母 dx dy

因为属性d采用的是用户坐标系统,所以不需要标明单位。

命令

直线命令

<path>元素里有5个画直线的命令,顾名思义,直线命令就是在两个点之间画直线。首先是Move to命令。

M需要两个参数,分别是需要移动到的点的xy轴的坐标。

假设,你的画笔当前位于一个点,在使用M命令移动画笔后,只会移动画笔,但不会在两点之间画线。因为M命令仅仅只是移动画笔,但不画线。所以M命令经常出现在路径的开始处,用来指明从何处开始画。

M x y
(or)
m dx dy

能够真正画出线的命令有三个

  • L(Line to) x y
  • H x
  • V y

最常用的是Line to命令,LL命令需要两个参数,分别是一个点的 x 轴和 y 轴坐标,L命令将会在当前位置和新位置(L 前面画笔所在的点)之间画一条线段。

L x y
(or)
l dx dy

另外还有两个简写命令,用来绘制水平线和垂直线。

H绘制水平线,V,绘制垂直线。这两个命令都只带一个参数,标明在 x 轴或 y 轴移动到的位置,因为他们都只在坐标轴的一个方向上移动。

H x
(or)
h dx
V y
(or)
v dy
demo 用直线命令画一个div边框
效果

在这里插入图片描述

代码实现
<svg
      class="dv-border-svg-container17"
      height="150%"
      width="150%"
      x="-25%"
      y="-25%"
    >
      <path
        fill="transparent"
        stroke="#18a2af"
        stroke-width="2"
        d="M 10 10
        H 150
        L 160 20
        H 260
        L 270 30
        H 320
        L 330 20
        H 495
        L 500 25
        V 395
        L 495 400
        H 200
        L 190 390
        H 100
        L 90 400
        H 5
        L 0 395
        V 160
        L 5 155
        V 110
        L 10 105
        V 60
        L 5 55
        V 15
        L 10 10"
      />

    </svg>
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Joyce Lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值