0

アトラクタ全体で色が変化するローレンツ アトラクタを描画しようとしています。アトラクタ ポイントを計算する for ループを次のように記述しました。

    float x = 1, y = 1, z = 1;
    glBegin(GL_LINE_STRIP);

    int i;    
    for (i=0; i < initialIterations; i++) {
        glColor3d(0,i/50000,1);
        // compute a new point using the lorenz attractor equations
        float dx = sigma*(y-x);
        float dy = x*(r-z) - y;
        float dz = x*y - b*z;

        // save the new point
        x = x + dx*dt;
        y = y + dy*dt;
        z = z + dz*dt;        

        glVertex3f(x/50,y/50,z/50);
    }
    glEnd();

コードの上部にあるを使用してglcolor、 の関数として色を変更していますi。ただし、必要な結果が表示されません。得られるのは1つの単色だけです。色がステート マシンのように機能することはわかっていますが、色全体を変更する方法を見つける必要があります。

4

1 に答える 1

4

整数除算 :i/50000を行っているため、常に 0 です。

試すi/50000.0

于 2012-09-20T20:59:57.303 に答える