在本系列的第二篇教程中,您学习了如何使用Konva绘制基本形状 。 您可以以一种或另一种方式组合基本形状以创建星形,环形,箭头,钟形或小屋。 Konva还允许您使用库提供的内置函数来创建一些常见的复杂形状。
在本教程中,您将学习如何在Konva中创建星星和戒指。 之后,我们将讨论如何使用Konva编写文本以及如何沿特定路径编写文本。 您还将学习如何使用Konva在画布上绘制图像和精灵。
绘制星星和戒指
与可以在画布上绘制的许多其他复杂形状相比,星形是最常见的形状之一。 使用正确的值集,您还可以将尖的星星变成简单的类似于徽章的形状。 Konva允许您使用Konva.Star()
对象绘制星星。
您可以使用numPoints
属性指定星星应具有的尖峰数量。 您可以使用innerRadius
和outerRadius
属性控制这些尖峰的大小。 这些属性值的巨大差异将使星星更加刺眼。 将外部半径设置为等于内部半径将创建一个规则的多边形,其边数为numPoints
值的numPoints
。 改变numPoints
, innerRadius
和outerRadius
的值可以产生一些有趣的形状。
var canvasWidth = 600;
var canvasHeight = 400;
var stage = new Konva.Stage({
container: "example",
width: canvasWidth,
height: canvasHeight
});
var layerA = new Konva.Layer();
var starA = new Konva.Star({
x: 70,
y: 80,
numPoints: 4,
innerRadius: 10,
outerRadius: 50,
stroke: "black",
fill: "rgba(200,0,200, 1)",
});
var starB = new Konva.Star({
x: 200,
y: 100,
numPoints: 8,
innerRadius: 10,
outerRadius: 50,
stroke: "black",
fill: "rgba(0, 0, 200, 1)",
});
var starC = new Konva.Star({
x: 475,
y: 175,
numPoints: 20,
innerRadius: 90,
outerRadius: 100,
stroke: "orange",
fill: "yellow",
});
var starD = new Konva.Star({
x: 325,
y: 75,
numPoints: 5,
innerRadius: 20,
outerRadius: 40,
stroke: "black",
fill: "lightgreen",
});
var starE = new Konva.Star({
x: 100,
y: 250,
numPoints: 25,
innerRadius: 25,
outerRadius: 80,
stroke: "black",
fill: "white",
});
var starF = new Konva.Star({
x: 300,
y: 275,
numPoints: 40,
innerRadius: 5,
outerRadius: 80,
stroke: "black",
fill: "black",
});
layerA.add(starA, starB, starC, starD, starE, starF);
stage.add(layerA);
与往常一样,您可以使用rotation
, scale
, scaleX
和scaleY
属性旋转和缩放创建的星形。 同样,您可以使用opacity
属性控制星星的opacity
并借助visible
属性显示或隐藏它。
Konva中的戒指由一个较大的实心圆和一个较小的空心圆组成。 内圆的半径是使用