Javascript 如何缩短将圆变成数组的代码?

Javascript 如何缩短将圆变成数组的代码?,javascript,p5.js,Javascript,P5.js,Im使用p5.js库,无法正确格式化for循环以显示以下圆圈: function draw() { ellipse(width/12,height/2,width/6,width/6); ellipse(width/12,height/4,width/12,width/12); ellipse(width/12,height/8,width/24,width/24); ellipse(width/12,height/16,width/48,width/48); } 我试

Im使用p5.js库,无法正确格式化for循环以显示以下圆圈:

function draw() {
  ellipse(width/12,height/2,width/6,width/6);    
  ellipse(width/12,height/4,width/12,width/12);
  ellipse(width/12,height/8,width/24,width/24);
  ellipse(width/12,height/16,width/48,width/48);
}
我试过以下方法,但没有省略号。我哪里做错了

下面我附上了完整的代码

for(var i = 0; i < 4; i++){
  ellipse(width/12, height/(2 * (2^i)), width/(6 * (2^i)), width/(6 * (2^i));  
}
for(变量i=0;i<4;i++){
椭圆(宽度/12,高度/(2*(2^i)),宽度/(6*(2^i)),宽度/(6*(2^i));
}
函数设置(){
canvas=createCanvas(窗口宽度、窗口高度);
}
函数绘图(){
背景(255);
填充(149185241160);
矩形(宽度*(1/6),0,宽度*(2/3),高度);
填充(181,99,87160);
仰泳();
对于(变量i=0;i<4;i++){
椭圆(宽度/12,高度/(2*pow(2,i)),宽度/(6*pow(2,i)),宽度/(6*pow(2,i));
}
}
window.onresize=函数(){
画布尺寸(窗宽、窗高);

}
这并不是你想象的那样:

2^i
这是一个按位异或运算符。有关更多信息,请参阅,谷歌是您的朋友

您可能正在寻找P5.js
pow()
函数。有关详细信息,请参阅

你应该养成代码的习惯。当你有这样的问题时,试着打印出每个参数的值。你本来可以隔离你的问题,这使得谷歌搜索更容易

例如,请执行以下操作:

for(var i = 0; i < 4; i++){
  console.log('i: ' + i);
  console.log('width: ' + width);
  console.log('width/12: ' + width/12);
  console.log('pow(2,i): ' + pow(2,i));
  console.log('height/(2* pow(2,i)): ' + height/(2* pow(2,i)));
  console.log('width/(6 * pow(2,i)): ' + width/(6 * pow(2,i)));
  ellipse(width/12, height/(2* pow(2,i)), width/(6 * pow(2,i)), width/(6 * pow(2,i)));  
}
for(变量i=0;i<4;i++){
console.log('i:'+i);
console.log('宽度:'+宽度);
console.log('width/12:'+width/12);
console.log('pow(2,i):'+pow(2,i));
控制台日志('height/(2*pow(2,i)):'+height/(2*pow(2,i)));
原木('width/(6*pow(2,i)):'+width/(6*pow(2,i));
椭圆(宽度/12,高度/(2*pow(2,i)),宽度/(6*pow(2,i)),宽度/(6*pow(2,i));
}
这将确切地告诉您哪个参数与您期望的参数不同,并且您可以从中进一步隔离您的问题

当然,这也要求您检查,您也应该养成这样做的习惯。这就是您遇到的任何错误都将显示的地方。您问题中当前的代码缺少
椭圆()行上的右括号


如果您有后续问题,请尝试发布一个我们可以复制并粘贴以自行运行的文件,而不是断开连接的代码片段。

这并不是您所认为的:

2^i
这是一个按位异或运算符。有关更多信息,请参阅,谷歌是您的朋友

您可能正在寻找P5.js
pow()
函数。有关详细信息,请参阅

你应该养成代码的习惯。当你有这样的问题时,试着打印出每个参数的值。你本来可以隔离你的问题,这使得谷歌搜索更容易

例如,请执行以下操作:

for(var i = 0; i < 4; i++){
  console.log('i: ' + i);
  console.log('width: ' + width);
  console.log('width/12: ' + width/12);
  console.log('pow(2,i): ' + pow(2,i));
  console.log('height/(2* pow(2,i)): ' + height/(2* pow(2,i)));
  console.log('width/(6 * pow(2,i)): ' + width/(6 * pow(2,i)));
  ellipse(width/12, height/(2* pow(2,i)), width/(6 * pow(2,i)), width/(6 * pow(2,i)));  
}
for(变量i=0;i<4;i++){
console.log('i:'+i);
console.log('宽度:'+宽度);
console.log('width/12:'+width/12);
console.log('pow(2,i):'+pow(2,i));
控制台日志('height/(2*pow(2,i)):'+height/(2*pow(2,i)));
原木('width/(6*pow(2,i)):'+width/(6*pow(2,i));
椭圆(宽度/12,高度/(2*pow(2,i)),宽度/(6*pow(2,i)),宽度/(6*pow(2,i));
}
这将确切地告诉您哪个参数与您期望的参数不同,并且您可以从中进一步隔离您的问题

当然,这也要求您检查,您也应该养成这样做的习惯。这就是您遇到的任何错误都将显示的地方。您问题中当前的代码缺少
椭圆()行上的右括号

如果您有后续问题,请尝试发布一个我们可以复制并粘贴以运行自己的代码片段,而不是断开连接的代码片段。

您可以使用运算符,因为您使用的是因子2,如

for (var i = 0; i < 4; i++) {
    ellipse(width / 12, height / (2 << i), width / (6 * (2 << i)), width / (6 * (2 << i));
}
for(变量i=0;i<4;i++){
椭圆(宽度/12,高度/(2您可以使用操作符,因为您使用的是因子2,如

for (var i = 0; i < 4; i++) {
    ellipse(width / 12, height / (2 << i), width / (6 * (2 << i)), width / (6 * (2 << i));
}
for(变量i=0;i<4;i++){

椭圆(宽/12,高/(2)你能在没有forloopuse
Math.pow
over
^
的情况下生成省略号吗?它们在没有forloopuse
Math.pow
over
^
的情况下显示,但当我添加它时,不会显示任何内容。抱歉,我会尝试,你会的se是最小的、完整的和可验证的example@MatthewMcLeod就像我说的,如果你有后续问题,你需要调试你的代码并发布一个。评论不是针对代码的。请编辑你的问题或在自己的帖子中发布一个新问题。@MatthewMcLeod请查看我编辑的答案,以及关于如何调试你的问题的更多信息。@MatthewMcLeod也不是e您在
椭圆()中缺少一个
右括号
line。请再次查看我编辑的答案。抱歉,我将尝试使用最小、完整且可验证的答案example@MatthewMcLeod正如我所说,如果您有后续问题,您需要调试您的代码并发布一个。注释不是针对代码的。请编辑您的问题或在自己的帖子中发布一个新问题。@MatthewMcLeod请查看我编辑的答案有关如何调试问题的详细信息。@MatthewMcLeod还注意到您的
椭圆()
行中缺少一个
右括号。请再次查看我编辑的答案。