·悄然 - 2024-11-13 15:01
·悄然 - 2024-11-13 11:23
·小希 - 2024-11-12 19:20
·悄然 - 2024-11-12 14:48
·悄然 - 2024-11-11 19:30
·飞飞 - 2024-11-11 18:53
·悄然 - 2024-11-11 14:10
·飞飞 - 2024-11-10 09:29
·悄然 - 2024-11-10 09:25
svg : clipPath 裁剪
SVG 的 <clipPath> 标签定义剪裁形状,其内包含svg实体元素或path路径,目标元素即被裁剪对象则通过 clip-path 属性以 url(#id) 的方式调用剪裁标签、达成剪裁效果。语句结构举例如下:
<defs> <clipPath id="clip"> <circle cx="150" cy="100" r="90" /> </clilpPath> </defs> <rect x="10" y="10" width="180" height="180" fill="lightblue" clip-path="url(#clip)" />
解释:clipPath标签一般放在defs标签内,也可以独立存在。上面的代码示例,clipPath内的实体元素是一个圆形图案,它的位置和尺寸和将被裁剪的对象息息相关,设计裁剪形状时要注意这一点;同时,用做裁剪形状的元素,可以不着色,着色也没有意义。后面的矩形,从尺寸上分析,中心与圆重合,宽高尺寸和圆的直径一致,这样,矩形通过 clip-path 属性调用了clipPath标签,矩形裁剪出来的将是一个圆。
下面我们通过实例来进一步理解 clipPath 标签的用法:我们用一个path路径图案——它实际上是一个竖状椭圆——做剪裁形状,去裁剪中心点重合、尺寸相符的图片——
代码:
svg的外边框包裹的本是图片的整体呈现,现在,由于 image 标签使用了 clip-path="url(#clip1)",图片只能按 clipPath 标签的路径(或形状)去呈现自己。
最后我们再来看一个例子,我们将在 clipPath 元素运行动画。以下效果,左边是裁剪后的最终样式,动画隶属于裁剪形状,即动画是 clipPath 元素的子元素运行的,换言之,这是一个动画形式的裁剪作品;右边是静态形式下裁剪形状(菱形)和被裁剪对象(圆)的同心圆叠加。
代码:
clipPath 还有一个 clipPathUnits 属性,用于定义坐标系,值有 userSpaceOnUse 和 objectBoundingBox,缺省值是 userSpaceOnUse,这里不做演示。
前一篇: svg : marker 标记
下一篇: svgdr教程·图像
评论列表 [2条]
#2 | 飞飞 于 2024-10-31 15:00 发布: 这个可以用PS剪贴蒙版来理解~~不过呢,这个更高级,还会旋转就更加厉害 了。。。
#1 | 小希 于 2024-10-31 14:58 发布: from="0 200 200" to="360 200 200"这个旋转的运动应该是0到360。。。200 200是中心点。角度在前面,中心点在后,之前好象没留意过这样的转法。。