Loops 如何操作:用于循环+;增加每个回路的半径?
如何创建一个干净简单的代码,在较大的代码中创建一个点/点圆?或者类似的东西(对不起,我不能发布我想要的图片)。我被告知尝试在代码的外部使用for循环,并在循环的每次迭代中稍微增加半径。但是,我不知道如何增加半径 这是迄今为止我一直在试验的代码: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
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);
}
}