2017-05-02 11 views
0

私はキャンバスのy軸とx軸に沿っていくつかの楕円を順番に描こうとしています。点はランダムなyの位置に描画されます。処理ループシーケンスの場合

私はこれまで、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); 
    } 

Iは、次いで、配列をy軸ならびにx軸に沿って楕円をしようとするforループ別を追加するに移動。したがって、視覚的には、次の列(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); 
    } 

xStepの条件付きで試してみると、1行の楕円しか描かれません。

//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ループの構築に間違っていますか?おかげさまで

答えて

0

draw()関数を呼び出すたびに1つのフレームが描画されることに注意してください。処理はダブルバッファーであるため、draw()関数の最後まで画面は更新されません。そのため、中間のステップではなく、最終的な結果のみが表示されます。

中間ステップをレンダリングする場合は、複数のフレームに分割する必要があります。プログラムの状態を一連の変数で追跡し、それらの変数を時間の経過とともに変更し、これらの変数を使用して各フレームを描画することで、これを実行できます。

恥知らずの自己プロモーション:hereは、上記のアプローチをより詳しく説明するProcessingのアニメーションに関するチュートリアルです。

関連する問題