svg路径

SVG 路径 - <path>


首先理解一下定义路径时各种字符命令代码的意思:

指令 参数 名称 描述
Mx,ymoveto
移动到
移动虚拟画笔到指定的(x,y)坐标,仅移动不绘制
mx,ymoveto同M,但使用相对坐标
Lx,ylineto
连直线到
从当前画笔所在位置绘制一条直线到指定的(x,y)坐标
lx,ylineto同L,但使用相对坐标
Hxhorizontal lineto
水平连线到
绘制一条水平直线到参数指定的x坐标点,y坐标为画笔的y坐标
hxhorizontal lineto同H,但使用相对坐标
Vyvertical lineto
垂直连线到
从当前位置绘制一条垂直直线到参数指定的y坐标
vyvertical lineto同V,但使用相对坐标
Cx1,y1 x2,y2 x,ycurveto
三次方贝塞尔曲线
从当前画笔位置绘制一条三次贝兹曲线到参数(x,y)指定的坐标。x1,y1和x2,y2是曲线的开始和结束控制点,用于控制曲线的弧度
cx1,y1 x2,y2 x,ycurveto同C,但使用相对坐标
Sx2,y2 x,yshorthand / 平滑三次方贝塞尔曲线从当前画笔位置绘制一条三次贝塞尔曲线到参数(x,y)指定的坐标。x2,y2是结束控制点。开始控制点和前一条曲线的结束控制点相同
sx2,y2 x,yshorthand / 平滑三次方贝塞尔曲线同S,但使用相对坐标
Qx1,y1 x,y二次方贝塞尔曲线从当前画笔位置绘制一条二次方贝塞尔曲线到参数(x,y)指定的坐标。x1,y1是控制点,用于控制曲线的弧度
qx1,y1 x,y二次方贝塞尔曲线同Q,但使用相对坐标
Tx,y平滑的二次贝塞尔曲线从当前画笔位置绘制一条二次贝塞尔曲线到参数(x,y)指定的坐标。控制点被假定为最后一次使用的控制点
tx,y平滑的二次贝塞尔曲线同T,但使用相对坐标
Arx,ry x-axis-rotation large-arc-flag,sweepflag x,y椭圆弧线从当前画笔位置开始绘制一条椭圆弧线到(x,y)指定的坐标。rx和ry分别为椭圆弧线水平和垂直方向上的半径。x-axis-rotation指定弧线绕x轴旋转的度数。它只在rx和ry的值不相同是有效果。large-arc-flag是大弧标志位,取值0或1,用于决定绘制大弧还是小弧。sweep-flag用于决定弧线绘制的方向
arx,ry x-axis-rotation large-arc-flag,sweepflag x,y椭圆弧线同A,但使用相对坐标
Z闭合路径从结束点绘制一条直线到开始点,闭合路径
z闭合路径同Z

注意:所有的这些字符命令都可以用大小写两种形式。大小表示绝对位置,而小写表示相对位置。(相对位置为相对于前一个点的坐标,以前一个点的坐标为起点坐标(0,0))

相对坐标的写法

<svg width="500" height="300"> <path d="M 20 20 l 0 200 l 100 0 l 0 -200 l -100 0" fill="none" stroke="green" stroke-width="2px" /> </svg>

另一种相对坐标写法

<svg width="500" height="300"> <path d="M 20 20 v 200  h 100 v -200 h -100" fill="none" stroke="green" stroke-width="2px" /> </svg>
此外可以用Z简化闭合
 <svg width="500" height="300"> <path d="M 20 20 v 200  h 100 v -200 z" fill="none" stroke="green" stroke-width="2px" /> </svg> 



绝对坐标写法

<svg width="500" height="300"> <path d="M 20 20 L 20 220 L 120 220 L 120 20 L20 20" fill="none" stroke="green" stroke-width="2px" /> </svg>
另一种 绝对坐标写法

<svg width="500" height="300"> <path d="M 20 20 V 220 H 120 V 20 H 20" fill="none" stroke="green" stroke-width="2px" /> </svg>


使用svg画一条组合图

( g用于把相关元素进行组合的容器元素 id="该组的名称" fill="该组填充颜色" opacity="该组不透明度" )

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="450">
	<g fill="none" >
            <path d="M 20 20 v 200  h 300 v -200 z" fill="green" stroke="black" stroke-width="1" />
            <path d="M 20 160 q 150 -100 300 0 v 60 h -300 z" stroke="#fff" stroke-width="1" fill="#fff" />
	</g>
</svg>


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值