Loops 如何操作:用于循环+;增加每个回路的半径?

Loops 如何操作:用于循环+;增加每个回路的半径?,loops,for-loop,processing,radius,Loops,For Loop,Processing,Radius,如何创建一个干净简单的代码,在较大的代码中创建一个点/点圆?或者类似的东西(对不起,我不能发布我想要的图片)。我被告知尝试在代码的外部使用for循环,并在循环的每次迭代中稍微增加半径。但是,我不知道如何增加半径 这是迄今为止我一直在试验的代码: size (400, 400); background(255); noStroke(); fill(0); smooth(); translate(width/2, height/2); int numpoints = 10; float angle

如何创建一个干净简单的代码,在较大的代码中创建一个点/点圆?或者类似的东西(对不起,我不能发布我想要的图片)。我被告知尝试在代码的外部使用for循环,并在循环的每次迭代中稍微增加半径。但是,我不知道如何增加半径

这是迄今为止我一直在试验的代码:

size (400, 400);
background(255);
noStroke();
fill(0);
smooth();
translate(width/2, height/2);

int numpoints = 10;
float angleinc = 2 * PI / numpoints;
int radius = 100;

for (int i = 0; i < numpoints; i++) {
  float x = cos(angleinc * i) * radius;
  float y = sin(angleinc * i) * radius;

  ellipse(x, y, 4, 4);
}
大小(400400);
背景(255);
仰泳();
填充(0);
光滑的();
平移(宽度/2,高度/2);
int numpoints=10;
浮动角度inc=2*PI/numpoints;
int半径=100;
对于(int i=0;i

请,任何快速的帮助将不胜感激。另外,我对处理和编码相当陌生,所以我不是最好的…

我希望我正确地回答了你的问题- 围绕原点的圆的公式是x=Rcos(角度)y=Rsin(角度),其中角度在0到2*pi之间

如果你想画一个围绕点的圆,比如说围绕(x',y'),公式将是x=x'+Rcos(角度)y=y'+rsin(角度)

守则:

  float epsilon = 0.0001f;
    float R = 5.5.f; 
    for (float angle = 0.0; angle < 2*PI; angle += epsilon ) {
        float x = x' + R*cos(angle);
        float y = y' + R*sin(angle);
        drawPoint(x,y);
        if( /*condition for changing the radius*/ )
        {
            R = R*2; // or any change you want to do for R
        }
    }
floatε=0.0001f;
浮子R=5.5.f;
对于(浮动角度=0.0;角度<2*PI;角度+=ε){
浮动x=x'+R*cos(角度);
浮动y=y'+R*sin(角度);
提取点(x,y);
如果(/*更改半径的条件*/)
{
R=R*2;//或您想为R做的任何更改
}
}

如果使用两个for循环,可能最简单的方法是:一个for循环在某个半径处绘制圆,另一个for循环中包含上一个for循环,它增加了半径

int numCircles = 3;

//This for loop increases the radius and draws the circle with another for loop
for (int j = 0; j < numCircles; j++)
{
  //This for loop draws the actual circle
  for (int i = 0; i < numpoints; i++)
  {
    float x = cos(angleinc * i) * radius;
    float y = sin(angleinc * i) * radius;

    ellipse(x, y, 4, 4);
  }
  //(add code here that increases the radius)
}
int numCircles=3;
//此for循环增加半径,并使用另一个for循环绘制圆
对于(int j=0;j
如果你把问题分解成更小的步骤,你的运气会更好。第一步是创建一个函数,绘制一个由较小圆组成的“环”。您已经完成了该步骤,只需将其分离为自己的功能:

void drawCircle(int outerRadius, int innerRadius) {

  int numpoints = 10;
  float angleinc = 2 * PI / numpoints;
  for (int i = 0; i < numpoints; i++) {
    float x = cos(angleinc * i) * outerRadius;
    float y = sin(angleinc * i) * outerRadius;

    ellipse(x, y, innerRadius, innerRadius);
  }
}
您可以将其压缩为循环的

  for(int i = 2; i <= 4; i++){
    drawCircle(25*i, 4*i);
  }

用于(int i=2;i预期的半径增加量是多少。你能不能加上半径=半径*x,其中x是for循环的增加量?为什么你不能发布一张你想要的图像?只需在油漆中模拟一下。到目前为止,每个人都在猜测你想要什么。这对我来说没有任何意义aviyaChe,我对处理非常陌生。另外,我的处理过程ing程序说x'和y'的东西是不正确的。我想做的就是在原始集合内创建另一组点,所以像原始点圆一样,我希望在比以前更小的范围内添加另一个点圆-以尽可能干净的方式,而不创建大量嵌套循环。这是一个伪代码,您需要声明x'和y'这个问题还不清楚,你能不能添加一张图片或其他什么?上面的方程式中缺少了x'和y'。这是我让公式运行所需要的缺失部分。
  for(int i = 2; i <= 4; i++){
    drawCircle(25*i, 4*i);
  }
void setup() {
  size (400, 400);
}

void draw() {
  background(255);
  noStroke();
  fill(0);
  smooth();
  translate(width/2, height/2);

  for(int i = 2; i <= 4; i++){
    drawCircle(25*i, 4*i);
  }
}

void drawCircle(int outerRadius, int innerRadius) {

  int numpoints = 10;
  float angleinc = 2 * PI / numpoints;
  for (int i = 0; i < numpoints; i++) {
    float x = cos(angleinc * i) * outerRadius;
    float y = sin(angleinc * i) * outerRadius;

    ellipse(x, y, innerRadius, innerRadius);
  }
}