gpt4 book ai didi

javascript - 将旋转纳入正多边形算法

转载 作者:行者123 更新时间:2023-12-03 12:13:30 24 4
gpt4 key购买 nike

我编写了这个算法来绘制正多边形:

var sides = 6,
radius = 50;
ctx.beginPath();
ctx.moveTo(x, y - radius);
for(n = 1; n <= sides; n++)
ctx.lineTo(
x + (radius * Math.sin(n * 2 * Math.PI / sides)),
y + (-1 * radius * Math.cos(n * 2 * Math.PI / sides))
);
ctx.stroke();

它工作得很好,但我需要结合一种旋转多边形的方法,使用 ctx.rotate() 函数。

感谢您的帮助。 如果您投反对票,请告诉我原因,以便我改进这个问题。

最佳答案

以下代码用于生成第一个顶点位于中心右侧零 Angular 正多边形:

enter image description here

代码使用三 Angular 学来旋转多边形,而不是context.rotate

function regularPolygon(cx,cy,sides,radius,radianRotation){
var deltaAngle=Math.PI*2/sides;
var x=function(rAngle){return(cx+radius*Math.cos(rAngle-radianRotation));}
var y=function(rAngle){return(cy+radius*Math.sin(rAngle-radianRotation));}
ctx.beginPath();
ctx.moveTo(x(0),y(0));
for(n = 1; n <= sides; n++){
var angle=deltaAngle*n;
ctx.lineTo(x(angle),y(angle));
}
ctx.closePath();
ctx.stroke();
}

关于javascript - 将旋转纳入正多边形算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24841813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com