2017-06-06 18 views
0

でアニメーション処理を用いたので、その私の最初の日、私はこれを開始するために、ヘルプのビットを必要とするが、私のコードであるイムは、選択ソートを行う:処理ループ

int[] numbers; // Declare array 
int currentmin; 
int exchange=0; 
void setup() { 
    frameRate(0.1); 
    size(500,500); 



numbers = new int[10]; // Create array with 10 cells 
    background(105); 
    for (int i = 0; i < numbers.length; i++) { // random numbers from 1 to 100 
    int r = int(random(1,100)); // create random numbers 

    for (int j=0; j<numbers.length; j++) { //make sure not duplications 
     if(numbers[j]==r) 
     {r=r+1;} 
    } 
    numbers[i]=r; //fill array with random numbers 
    println(r); 
} 
fill(255,0,0); 
for (int i = 0; i < numbers.length; i++) { //draw rectangles 
    rect(i*40+10,400 ,35, -numbers[i]); 

} 
for (int j=0; j < numbers.length; j++){ //set pivot number 


    currentmin=numbers[j]; 
for (int i=j+1; i < numbers.length; i++){ //find lowest number in array 

    if (numbers[i] < currentmin) { 
     currentmin = numbers[i]; 
    } 
} 
    for (int i=j; i<numbers.length;i++){ //swap pivot with lowest number 
    if (numbers[i]==currentmin){ 
    exchange=numbers[j]; 
    numbers[j]=numbers[i]; 
    numbers[i]=exchange; 
    //here 
    } 
    } 
} 

} 

void draw() { 

    background(105); 
for (int z = 0; z < numbers.length; z++) { 
    rect(z*40+10,400 ,35, -numbers[z]); 

    } 
} 

あなたはどこで見ることができるように物事をアニメ化させ、最初のループの各繰り返しで長方形の場所が変わるのを見て、ここでコメントしていますが、うまくいきません。私はdraw()を呼び出しました。絶望的にしかしそれは仕事をしなかった...とにかく私は助けを得ることができますか?

答えて

1

これは、実行するのは簡単なアニメーションではありません。本当に簡単なものから始めるべきです。

しかし、あなたの質問に答えるには、アニメーションをforループの中に入れないでください。代わりに、draw()関数がアニメーションの1つのフレームを描画するようにする必要があります。処理は自動的にdraw()関数を毎秒60回呼び出します。そのたびに描画される内容を変更することにより、アニメーションを作成します。

恥知らずの自己宣伝:処理可能なアニメーションの作成に関するチュートリアルをhereで作成しました。

+0

私は自分のコードを修正できる単純な編集ではないことを理解しています。私はコンセプトを変える必要があります。 – Rida

+0

@Ridaかなり。基本的に、 'for'ループの中でアルゴリズムを実行する代わりに、' draw() 'の各呼び出しをフレームとして扱う必要があります。これは、時間の経過とともに更新するスケッチレベル変数を使用して行うことができます。基本的に 'for'ループが何をしているのかを再作成しますが、' draw() '関数で再作成します。 –

+0

神はそれが働いていない:/私はそれを理解することができるように私にそれを書くことができますか? – Rida