聊聊 SVG 基本形状转换那些事

本文探讨了SVG中的基本形状,包括矩形、圆形、椭圆、直线、折线和多边形,并详细阐述了如何将这些形状转换为Path路径,以实现SVG压缩优化和路径动画。同时介绍了convertpath转换工具的使用。
摘要由CSDN通过智能技术生成

一、前言

前段时间研究 SVG 压缩优化,发现SVG预定义的 rectcircleellipselinepolylinepolygon 六种基本形状可通过path路径转换实现,这样可以在一定程度上减少代码量。不仅如此,我们常用的 SVG Path 动画(路径动画),是以操作path中两个属性值stroke-dasharraystroke-dashoffset来实现,基本形状转换为path路径,有利于实现路径动画。

二、SVG基本形状

SVG 提供了rectcircleellipselinepolylinepolygon六种基本形状用于图形绘制,这些形状可以直接用来绘制一些基本的形状,如矩形、椭圆等,而复杂图形的绘制则需要使用 path 路径来实现。

svg基本形状

1.rect 矩形
 
    
1
2
 
    
<rect x= "10" y= "10" width= "30" height= "30"/>
<rect x= "60" y= "10" rx= "10" ry= "10" width= "30" height= "30"/>

SVG中rect元素用于绘制矩形、圆角矩形,含有6个基本属性用于控制矩形的形状以及坐标,具体如下:

 
    
1
2
3
4
5
6
 
    
x 矩形左上角x位置, 默认值为 0
y 矩形左上角y位置, 默认值为 0
width 矩形的宽度, 不能为负值否则报错, 0 值不绘制
height 矩形的高度, 不能为负值否则报错, 0 值不绘制
rx 圆角x方向半径, 不能为负值否则报错
ry 圆角y方向半径, 不能为负值否则报错

这里需要注意,rx 和 ry 的还有如下规则:

  • rx 和 ry 都没有设置, 则 rx = 0 ry = 0
  • rx 和 ry 有一个值为0, 则相当于 rx = 0 ry = 0,圆角无效
  • rx 和 ry 有一个被设置, 则全部取这个被设置的值
  • rx 的最大值为 width 的一半, ry 的最大值为 height 的一半
 
    
1
2
3
4
5
6
7
8
9
10
 
    
rx = rx || ry || 0;
ry = ry || rx || 0;
rx = rx > width / 2 ? width / 2 : rx;
ry = ry > height / 2 ? height / 2 : ry;
if( 0 === rx || 0 === ry){
rx = 0,
ry = 0; //圆角不生效,等同于,rx,ry都为0
}
2.circle 圆形
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值