Fabric.js 多边形fillRule属性
在本文中,我们将看到如何使用 FabricJS 设置canvas多边形的填充规则,它用于填充一个物体。canvas多边形意味着可以根据需求移动和拉伸多边形。此外,当涉及到初始描边颜色、高度、宽度、填充颜色或描边宽度时,多边形可以进行自定义。
为了实现这一点,我们将使用一个叫做 FabricJS 的JavaScript库。在导入库之后,我们将在标签中创建一个包含多边形的canvas块。然后,我们将通过 FabricJS 提供的Canvas和polygon的实例来设置canvas多边形的填充规则,以及在canvas上渲染多边形,如下面的示例中所示。
语法:
fabric.Polygon([
{ x: pixel, y: pixel },
{ x: pixel, y: pixel },
{ x: pixel, y: pixel },
{ x: pixel, y: pixel },
{ x: pixel, y: pixel }],
{
fillRule : string
});
参数:
此属性接受一个参数,如上所述,并在下面进行描述:
- fillRule: 规定对象的填充规则,接受的值为nonzero和evenodd。
注意:
创建多边形必须指定像素尺寸。
下面的示例以JavaScript展示了 Fabric.JS 多边形的fillRule属性:
示例1: 在这个示例中,我们将属性值设为evenodd。
<!DOCTYPE html>
<html>
<head>
<!-- Loading the FabricJS library -->
<script src=
"https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.6.2/fabric.min.js">
</script>
</head>
<body>
<div style="text-align: center;width: 600px;">
<h1 style="color: green;">
GeeksforGeeks
</h1>
<b>
Fabric.js | Polygon fillRule Property
</b>
</div>
<canvas id="canvas"
width="600"
height="200"
style="border:1px solid #000000;">
</canvas>
<script>
// Initiate a Canvas instance
var canvas = new fabric.Canvas("canvas");
// Initiate a polygon instance
var polygon = new fabric.Polygon([
{ x: 295, y: 10 },
{ x: 235, y: 198 },
{ x: 385, y: 78},
{ x: 205, y: 78},
{ x: 355, y: 198 }], {
fillRule: 'evenodd'
});
// Render the polygon in canvas
canvas.add(polygon);
</script>
</body>
</html>
输出:
示例2: 在这个示例中,我们将属性值设置为非零。
<!DOCTYPE html>
<html>
<head>
<!-- Loading the FabricJS library -->
<script src=
"https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.6.2/fabric.min.js">
</script>
</head>
<body>
<div style="text-align: center;width: 600px;">
<h1 style="color: green;">
GeeksforGeeks
</h1>
<b>
Fabric.js | Polygon fillRule Property
</b>
</div>
<canvas id="canvas"
width="600"
height="200"
style="border:1px solid #000000;">
</canvas>
<script>
// Initiate a Canvas instance
var canvas = new fabric.Canvas("canvas");
// Initiate a polygon instance
var polygon = new fabric.Polygon([
{ x: 295, y: 10 },
{ x: 235, y: 198 },
{ x: 385, y: 78},
{ x: 205, y: 78},
{ x: 355, y: 198 }], {
fillRule: 'nonzero'
});
// Render the polygon in canvas
canvas.add(polygon);
</script>
</body>
</html>
输出: