fill-rule
属性是指,如何判断路径的哪一侧在路径所构成的形状的内部,从而判断fill
属性如何给这个形状上色。对于一个简单的,没有交错的路径来说,哪个区域位于图形的“内部”,直观上就能够判断清楚;然而,对于一个更为复杂路径,比如一条与自身交错的路径或者是在这条路径上,其中一段将另一段包围着,要解释什么是“内部”就不再这么明显了。
用法
类别 | 外观属性 |
---|---|
值 | nonzero | evenodd | inherit |
可变性 | Yes |
规范文档 | SVG 1.1 (2nd Edition) |
fill-rule
属性为如何确定一个形状的“内部”提供了两个可选值:
- nonzero
- 这个值确定了某点属于该形状的“内部”还是“外部”。从点向任意方向的无限远处绘制射线,然后检测形状与射线相交的位置。开始于0数,射线上每次从左向右相交就加1,每次从右向左相交就减1。数一下相交次数,如果结果是0,点就在路径外面,否则认为,点在路径里面。
- evenodd
- 这个值用确定了某点属于该形状的“内部”还是“外部”。从点向任意方向的无限远处绘制射线,并数一数给定形状与射线相交的路径段的数目,如果数目是奇数的,点在内部,如果数目是偶数的,点在外部。
示例
元素
以下元素可以使用fill-rule属性: