0
我正在嘗試沿畫布的y軸和x軸順序繪製幾個橢圓。點在隨機y位置繪製。處理For循環序列
我以前有橢圓隨機沿x軸繪製高度。但是,所有沿y軸的橢圓都是一次繪製的。
for (int x = 0; x < xStep; x++) {
int mh = int(map(noise(offset+(x*0.05)), 0, 1, 0, h));
for (int y = mh; y > mh - 3; y--) {
ellipse(x*diam, y*diam, diam, diam);
}
}
xStep++;
if (xStep > w) {
xStep = 0;
offset = random(1000);
}
然後,我繼續添加另一個for循環,嘗試沿y軸以及x軸順序排列橢圓。因此,在繪製下一列(x軸)之前,視覺上每個橢圓在y軸上依次繪製。然而,使用下面的代碼,我得到的是y和x軸的「繪圖」,但同時在視覺上看起來並不像一行在下一列繪製之前完成。
//count rows and frames
if (counter > 7) {
counter = 0;
rowCounter++;
}
for (int j=0; j<7; j++) { //set values to match counter
if (j == counter){
for (int x = 0; x < xStep; x++) {
int mh = int(map(noise(offset+(x*0.05)), 0, 1, 0, h));
for (int y = mh; y > mh - 3; y--) {
y=y-j;
ellipse(x*diam, y*diam, diam, diam);
}
}
}
}
xStep++;
counter++;
if (rowCounter > 7) {
rowCounter = 0;
}
if (xStep > w) {
xStep = 0;
offset = random(1000);
}
或者,如果我嘗試使用條件的特步我只得到繪製橢圓的一行。
//count rows and frames
if (counter > 7) {
counter = 0;
rowCounter++;
}
for (int j=0; j<7; j++) { //set values to match counter
if ((j == counter) && (xStep != lastXstep)) {
for (int x = 0; x < xStep; x++) {
int mh = int(map(noise(offset+(x*0.05)), 0, 1, 0, h));
for (int y = mh; y > mh - 3; y--) {
y=y-j;
ellipse(x*diam, y*diam, diam, diam);
xStep=lastXstep;
}
}
}
}
xStep++;
counter++;
if (rowCounter > 7) {
rowCounter = 0;
}
if (xStep > w) {
xStep = 0;
offset = random(1000);
}
任何人都可以幫助指向我的方向,我出錯的for循環結構? 謝謝。