Phani Rithvij:
これは私が描くつもり私が書いたコードであるn
1点から始まる行を。それぞれが角度によって分離しました2*PI / n
。
int n;
void setup(){
size(displayWidth, displayHeight);
n = 7;
}
void draw(){
background(0);
push();
translate(displayWidth/2, displayHeight/2);
strokeWeight(4);
for (int i=0; i < n; i++){
stroke(random(255), random(255), random(255));
//println(i);
//println("theta is", i*(2*PI/n));
//println("theta in deg is", i*(2*PI/n)*180/PI);
rotate(i*(2*PI/n));
line(0, 0, 400, 0);
}
//noLoop();
pop();
}
void keyPressed(){
if (key == '='){
n++;
} else if (key == '-'){
n--;
if (n <= 0) n = 1;
}
}
それが動作しないよう何らかの理由でそれの間違いましたn=3,5,6,7,9,10..
。
nがある場合にのみ働いている1,2,4,8,16,32...
すなわちにのみ2倍。
私が何か間違ったことしなければなりません。すべてのヘルプは大歓迎しました。
それが働いているのに対し、私は通常の三角法を行う場合。
置換することにより、すなわち
rotate(i*(2*PI/n));
line(0, 0, 400, 0);
沿って
line(0, 0, 400 * cos(i*(2*PI/n)), 400 * sin(i*(2*PI/n)));
使用して、-, =
キーのスパイク数を変更します。
YOUSFIモハメド・ワリド:
押すだけでループのためのあなたの内部の回転を囲むと、あなたがローテーションに各反復をリセットするこの方法をポップ、私はそれを試してみましたが、そのここで働くことは結果のコードです
int n;
void setup(){
size(displayWidth, displayHeight);
n = 7;
}
void draw(){
background(0);
push();
translate(displayWidth/2, displayHeight/2);
strokeWeight(4);
for (int i=0; i < n; i++){
stroke(random(255), random(255), random(255));
//println(i);
//println("theta is", i*(2*PI/n));
//println("theta in deg is", i*(2*PI/n)*180/PI);
push();
rotate(i*(2.0*PI)/n);
line(0, 0, 400, 0);
pop();
}
pop();
}
void keyPressed(){
if (key == '='){
n++;
} else if (key == '-'){
n--;
if (n <= 0) n = 1;
}
}