FabricJS – 对于一个多边形对象,确定是先画出填充还是先画出笔划
我们可以通过创建一个fabric.Polygon的实例来创建一个Polygon对象。一个多边形对象可以被描述为由一组连接的直线段组成的任何封闭形状。由于它是FabricJS的基本元素之一,我们也可以通过应用角度、不透明度等属性来轻松定制它。为了确定是先画填充还是先画描边,我们使用paintFirst属性。
语法
new fabric.Polygon( points: Array, { paintFirst: String }: Object )
参数
- points – 这个参数接受一个数组,表示构成多边形对象的点的数组,每个点都是一个有x和y的对象。
-
options (可选) – 这个参数是一个Object,为我们的对象提供额外的定制。使用这个参数可以改变与多边形对象有关的原点、笔触宽度和许多其他属性,paintFirst是该对象的一个属性。
选项键
**paintFirst ** 值,它定义了是先画填充还是先画描边。默认值是 “填充”。
例1:多边形对象的默认外观
让我们看一个代码例子,当paintFirst属性未被应用时,多边形对象是如何出现的。在这种情况下,使用的是默认值,即 “填充”。这意味着在绘制对象时,填充色将首先被绘制,然后是描边色。
<!DOCTYPE html>
<html>
<head>
<!-- Adding the Fabric JS Library-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
</head>
<body>
<h2>Default appearance of polygon object</h2>
<p>You can see the default appearance of polygon object</p>
<canvas id="canvas"></canvas>
<script>
// Initiate a canvas instance
var canvas = new fabric.Canvas("canvas");
canvas.setWidth(document.body.scrollWidth);
canvas.setHeight(250);
// Initiating a polygon object
var polygon = new fabric.Polygon(
[
{ x: 200, y: 10 },
{ x: 250, y: 50 },
{ x: 250, y: 180 },
{ x: 150, y: 180 },
{ x: 150, y: 50 },
{ x: 200, y: 10 },
],
{
fill: "green",
stroke: "blue",
strokeWidth: 20,
}
);
// Adding it to the canvas
canvas.add(polygon);
</script>
</body>
</html>
例2:使用paintFirst属性
让我们看一个代码例子,看看我们如何通过使用paintFirst属性改变多边形对象的默认行为。在这里,我们把paintFirst属性的值设为 “stroke”。这可以确保先画出描边,而不是填充。
<!DOCTYPE html>
<html>
<head>
<!-- Adding the Fabric JS Library-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
</head>
<body>
<h2>Using the paintFirst property</h2>
<p>You can see that the stroke is painted first now</p>
<canvas id="canvas"></canvas>
<script>
// Initiate a canvas instance
var canvas = new fabric.Canvas("canvas");
canvas.setWidth(document.body.scrollWidth);
canvas.setHeight(250);
// Initiating a polygon object
var polygon = new fabric.Polygon(
[
{ x: 200, y: 10 },
{ x: 250, y: 50 },
{ x: 250, y: 180 },
{ x: 150, y: 180 },
{ x: 150, y: 50 },
{ x: 200, y: 10 },
],
{
fill: "green",
stroke: "blue",
strokeWidth: 20,
paintFirst: "stroke",
}
);
// Adding it to the canvas
canvas.add(polygon);
</script>
</body>
</html>
结论
在本教程中,我们用两个简单的例子来演示如何使用FabricJS来确定一个多边形应该先画出填充还是描边。