svg学习记录(九)

在学习完SVG图形的基本绘制之后,和CSS一样,SVG的图形中也可以进行图形的移动、旋转、缩放等转换操作。

g

g这个标签,它用于图形的集合,利用g可以批量的给集合中的图形进行批量赋值。

<g fill="red">
    <circle cx="10" cy="10" width="30" height="30" r="10"></circle>
    <circle cx="40" cy="10" width="30" height="30" r="10"></circle>
</g>

在这里插入图片描述

图形平移

translate函数用于元素的水平、垂直的移动。该函数需要传入1-2个参数,分别xxy。如果你只需要进行水平移动时可以使用单参数形式,第二个值默认为0

<circle cx="30" cy="30" r="15" fill="red" />
<circle cx="30" cy="30" r="15" fill="red" transform="translate(40)" />
<circle cx="30" cy="30" r="15" fill="red" transform="translate(40,40)" />

在这里插入图片描述

图形旋转

rotate函数用于旋转一个元素,需要传入一个旋转角度,正角度表示了顺时针的旋转,负角度表示逆时针的旋转。

<rect x="60" y="0" width="40" height="40" fill="red" transform="rotate(45)" />

在这里插入图片描述
需要注意的是这里不是按照图形的中心点进行旋转,如果你的需求的按图形的中心点进行旋转可以使用CSS来实现,加入以下内联代码即可实现。(可以通过transform-origin属性定义中心点)

style="transform-box:fill-box;transform-origin:center;"

斜切

skewXskewY函数用于转换,将图形倾斜到二维的平面上。它需要传入一个角度用于扭曲图形。

<rect x="10" y="0" width="40" height="40" fill="none" stroke="red" />
<rect x="60" y="0" width="40" height="40" fill="none" stroke="red" transform="skewX(40)" />
<rect x="150" y="0" width="40" height="40" fill="none" stroke="red" transform="skewY(50)" />

在这里插入图片描述

缩放

scale函数用于缩放一个图形,它需要传入一个缩放的值作为比例来缩放。

<circle cx="30" cy="30" r="15" fill="none" stroke="red" transform="scale(0.5)" />
<circle cx="30" cy="30" r="15" fill="none" stroke="blue" transform="scale(1)" />
<circle cx="30" cy="30" r="15" fill="none" stroke="green" transform="scale(1.5)" />
<circle cx="100" cy="30" r="15" fill="none" stroke="red" transform="scale(0.5)" style="transform-box:fill-box;transform-origin:center;" />
<circle cx="100" cy="30" r="15" fill="none" stroke="blue" transform="scale(1)" style="transform-box:fill-box;transform-origin:center;" />
<circle cx="100" cy="30" r="15" fill="none" stroke="green" transform="scale(1.5)" style="transform-box:fill-box;transform-origin:center;" />

在这里插入图片描述
与上面的rotate一样,如果你想要按照图形的中心点进行旋转,需要与CSS一起使用。

本次学习了在SVG中的关于图像变形的相关属性,其实它的属性与CSS类似,使用起来也是很简单的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值