参数确认点的位置 centerX 中心点x centerX 中心点Y radius 半径, sider 绘制几条边
getPoints: function (centerX:number, centerY:number, radius:number, sides: number) {
let points = [];
let angle = 0;
for (var i = 0; i < sides; i++) {
points.push({
x: centerX + radius * Math.cos(angle),
y: centerY - radius * Math.sin(angle)
})
angle += 2 * Math.PI / sides
}
return points
}
使用
let fir_box_points = that.getPoints(300,300, 100, 6)
ctx.beginPath();
ctx.moveTo(fir_box_points[0].x, fir_box_points[0].y);
ctx.strokeStyle = 'white'
ctx.lineWidth = 3
for (var i = 1; i < fir_box_points.length; i++) {
ctx.lineTo(fir_box_points[i].x, fir_box_points[i].y)
}
ctx.lineTo(fir_box_points[0].x, fir_box_points[0].y)
ctx.stroke()
此处仅为代码,