1. FabricJS是什么?
FabricJS是一个用于HTML5 Canvas上的Javascript库,我们可以利用它来轻松创建有趣的图形,如:线,圆,矩形等等。我们可以在运行时调整它们,移动它,旋转它,缩放它,修改它们的属性,添加筛选器,动画等等,并且,在画布上呈现2D样式相关的图形时,它具有良好的性能。
2. 如何创建一个圆?
在FabricJS中,圆可以通过new fabric.Circle()来创建。我们可以设置它的半径、颜色、边框、阴影、角度等等属性。下面代码演示了如何创建一个圆(半径为50,颜色为红色):
var circle = new fabric.Circle({
radius: 50,
fill: 'red',
left: 100,
top: 100
});
canvas.add(circle);
我们通过调用canvas.add()将圆添加到画布上。你可能已经注意到left和top属性。这些属性可以用于设置圆在画布上的位置。
3. 如何设置圆的垂直比例因子?
在FabricJS中,我们可以使用scaleY属性来设置垂直比例因子。当设置为1时,圆的高度将等于其宽度,当设置为0.5时,圆的高度将为其宽度的一半。下面代码演示如何将圆的垂直比例因子设置为0.6:
circle.set({
scaleY: 0.6
});
circle.setCoords();
canvas.renderAll();
我们首先通过circle.set()方法设置scaleY属性,然后通过circle.setCoords()方法更新圆的坐标,并且通过canvas.renderAll()方法呈现画布。现在,圆的垂直比例因子为0.6,高度是宽度的0.6倍。
4. 如何运用其他属性?
通过强调其他属性,我们可以实现更复杂的效果,比如,通过设置渐变背景色,我们可以创建一个立体效果的圆。
4.1 设置渐变背景色
在FabricJS中,我们可以使用实际的对象和svg颜色定义来设置渐变的颜色。下面代码演示如何创建一个渐变红色圆形:
var circle = new fabric.Circle({
radius: 50,
fill: new fabric.Gradient({
type: 'radial',
gradientUnits: 'pixels',
coords: {
x1: 25,
y1: 25,
r1: 0,
x2: 25,
y2: 25,
r2: 50
},
colorStops: [
{offset: 0, color: "red"},
{offset: 1, color: "white"}
]
}),
left: 100,
top: 100
});
canvas.add(circle);
我们通过将fill属性设置为一个新的fabric.Gradient对象来创建一个渐变背景。该渐变定义了两种颜色,一种是红色,一种是白色。我们已经将其设置为放射性渐变,范围从0到50像素,中心点为(25,25)。我们可以更改x1,y1,x2,y2,r1和r2属性来设置所需的渐变。
4.2 设置圆的描边和描边颜色
我们可以通过设置stroke和strokeWidth属性来设置圆的描边。stroke属性用于设置描边颜色,strokeWidth属性用于设置描边宽度。下面代码演示如何创建一个圆,它具有描边(红色)和3像素宽的描边:
var circle = new fabric.Circle({
radius: 50,
fill: 'white',
stroke: 'red',
strokeWidth: 3,
left: 100,
top: 100
});
canvas.add(circle);
我们将stroke属性设置为红色,strokeWidth属性设置为3。 这将在圆外描绘一个红色描边,并将描边宽度设置为3个像素。
4.3 设置圆的投影
可以使用shadow属性为图形添加投影。shadow属性是一个对象,并具有颜色、模糊半径、水平偏移和垂直偏移属性。下面代码演示如何创建一个红色圆形,它具有深灰色投影:
var circle = new fabric.Circle({
radius: 50,
fill: 'red',
left: 100,
top: 100,
shadow: 'rgba(0,0,0,0.5) 3px 3px 5px'
});
canvas.add(circle);
我们将shadow属性设置为包含color、blur、horizontal和vertical属性的字符串。color是阴影颜色的rgba定义,blur是阴影的模糊半径,horizontal和vartical是阴影相对于图形的左上角的水平和垂直偏移。
5. 综合运用
现在,我们知道如何设置圆的垂直比例因子、渐变背景色、描边和投影。如果我们将它们结合起来,将会创建一个立体效果的圆。下面的代码演示了如何创建:
var circle = new fabric.Circle({
radius: 50,
fill: new fabric.Gradient({
type: 'radial',
gradientUnits: 'pixels',
coords: {
x1: 25,
y1: 25,
r1: 0,
x2: 25,
y2: 25,
r2: 50
},
colorStops: [
{offset: 0, color: "red"},
{offset: 1, color: "white"}
]
}),
stroke: 'black',
strokeWidth: 1,
shadow: 'rgba(0,0,0,0.5) 3px 3px 5px',
scaleY: 0.6
});
canvas.add(circle);
现在,我们有了一个立体呈现的圆形,它具有渐变背景色、黑色边框、深灰色投影和0.6的垂直比例因子。
6. 总结
在这篇文章中,我们学习了如何使用FabricJS创建一个圆,并设置其垂直比例因子。我们了解了其他属性,如:渐变背景色、描绘和阴影,并学习了如何结合所有这些属性来创建真正独特的图形。