Javascript 在p5.js中以圆形输出文本值数组

Javascript 在p5.js中以圆形输出文本值数组,javascript,arrays,nested-loops,shapes,p5.js,Javascript,Arrays,Nested Loops,Shapes,P5.js,啊!我不熟悉p5.js的编程和工作。我的难题是:我想创建一个数字时钟,并使用一些for循环和一个时钟值数组(文本1-12)输出时钟上的数字。我已经想出了如何制作时钟滴答作响的图像…但无法理解其余的。当我运行下面的代码时,它不会抛出任何错误,但时钟上的文本/数字不会执行。我尝试将下面的第一个for循环放在setup函数中,但没有任何变化。我做错了什么?我觉得我对第二个for循环以及如何将数字打印到屏幕上感到困惑,比如:(text([I]))。请让我知道,如果我需要澄清更多-任何帮助是感激的!尽可能

啊!我不熟悉p5.js的编程和工作。我的难题是:我想创建一个数字时钟,并使用一些for循环和一个时钟值数组(文本1-12)输出时钟上的数字。我已经想出了如何制作时钟滴答作响的图像…但无法理解其余的。当我运行下面的代码时,它不会抛出任何错误,但时钟上的文本/数字不会执行。我尝试将下面的第一个for循环放在setup函数中,但没有任何变化。我做错了什么?我觉得我对第二个for循环以及如何将数字打印到屏幕上感到困惑,比如:(text([I]))。请让我知道,如果我需要澄清更多-任何帮助是感激的!尽可能多地学习

 //Simple second clock.
 // An exercise in translating from polar to cartesian coordinates

    var radius = 120.0;
    var angle = 0.0;
    var x=0, y=0;
    var digits = [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];

    function setup() {
      createCanvas(windowWidth,windowHeight);
    }

    function draw() {
    for (var i = 0; i < 12; i++) { //loop for digits. Populate array.
    digits[i] = text("[i]", 10, -radius+10);
    for (var i = 0; i < digits.length; i++) {
    fill(255,0,255)
    text([i]);
    }
    }   
      background(255);
      translate(width/2, height/2);
      stroke(205,205,55);
      fill(255,0,255);
      ellipse(0,0,10,10);
      noFill();
      ellipse(0,0,250,250);
      stroke(25);
      fill(205,205,55);
      //text("12", 0, -radius+PI+10); //if I were to manually do each number 
     // text("1", 30, -radius+PI+20);
     // text("2", 60, -radius+PI+30);
     // text("3", 90, -radius+PI+40);

      angle = (second() / 59.0) * TWO_PI;

      // memorize this formula, it's helpful
      x = cos(angle)* radius;
      y = sin(angle)* radius;

      stroke(255,0,255);

      //draw a line from the center of our screen and as long as our radius

      line(0,0,x,y);
      ellipse(x,y,10,10);
    }
//简单的秒时钟。
//从极坐标到笛卡尔坐标的转换练习
var半径=120.0;
var角=0.0;
变量x=0,y=0;
变量数字=[12,1,2,3,4,5,6,7,8,9,10,11];
函数设置(){
createCanvas(窗口宽度、窗口高度);
}
函数绘图(){
对于(var i=0;i<12;i++){//数字循环。填充数组。
数字[i]=文本(“[i]”,10,-半径+10);
对于(变量i=0;i
这确实是一个关于的问题。注释部分中的
x
y
坐标已关闭。这就是想法:

var angleOffset = -1*PI/2;
for (var i=1; i<=12; i++) {
  angle = 2*PI*i/12 + angleOffset;
  text(i, radius*cos(angle), radius*sin(angle));
}
var angleOffset=-1*PI/2;

对于(var i=1;iHi,我认为这不起作用。以下是我如何将代码插入draw函数中的。仍然没有文本输出。有什么想法吗?非常感谢!!!只是为了让我理解逻辑-我可以直接删除draw函数下的var digits数组和for循环吗?哦,是的,我相信是这样的!
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.4.23/p5.min.js"></script>
<script>

var radius = 120.0;
var angle = 0.0;
var x=0, y=0;
var digits = [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];

function setup() {
  createCanvas(windowWidth,windowHeight);
}

function draw() {
for (var i = 0; i < 12; i++) { //loop for digits. Populate array.
digits[i] = text("[i]", 10, -radius+10);
for (var i = 0; i < digits.length; i++) {
fill(255,0,255)
text([i]);
}
}   
  background(255);
  translate(width/2, height/2);
  stroke(205,205,55);
  fill(255,0,255);
  ellipse(0,0,10,10);
  noFill();
  ellipse(0,0,250,250);
  stroke(25);
  fill(205,205,55);

  var angleOffset = -1*PI/2;
  for (var i=1; i<=12; i++) {
    angle = 2*PI*i/12 + angleOffset;
    text(i, radius*cos(angle), radius*sin(angle));
  }


  angle = (second() / 59.0) * TWO_PI;

  // memorize this formula, it's helpful
  x = cos(angle)* radius;
  y = sin(angle)* radius;

  stroke(255,0,255);

  //draw a line from the center of our screen and as long as our radius

  line(0,0,x,y);
  ellipse(x,y,10,10);
}

setup();
draw();

</script>