fill-rule
属性标识了用来确定路径的哪一侧算是形状内部的算法。对于简单的形状,非相交路径,哪个区域算是“内部”很直观明显;然而对于较复杂的路径,比如说一个路径自身相交,或者一个子路径包围了另一个子路径,这个“内部”的相交就不那么明显了。
用法
类别 | 外观属性 |
---|---|
值 | nonzero | evenodd | inherit |
可变性 | Yes |
规范文档 | SVG 1.1 (2nd Edition) |
fill-rule
属性为如何确定一个形状的“内部”提供了两个可选值:
- nonzero
- 这个值确定了某点属于该形状的“内部”还是“外部”。从点向任意方向的无限远处绘制射线,然后检测形状与射线相交的位置。开始于0数,射线上每次从左向右相交就加1,每次从右向左相交就减1。数一下相交次数,如果结果是0,点就在路径外面,如果结果大于0,点在路径里面。
- evenodd
- 这个值用确定了某点属于该形状的“内部”还是“外部”。从点向任意方向的无限远处绘制射线,并数一数给定形状与射线相交的路径段的数目,如果数目是奇数的,点在内部,如果数目是偶数的,点在外部。
示例
元素
以下元素可以使用fill-rule属性: