2

私が望むのは、コードからではなく、グラフィックスを使用してウィンドウから変数の値を変更できるようにすることです。いくつかの固定値があり、それらの間でのみ選択できる場合は問題ありません。アイデアを教えてください。

|--|--|--|--|--|のようなものを考えていましたが、各垂直線は値を表し、線をクリックすると値が変更されますが、それは少し難しいです私はこれを実装します。もっとシンプルなアイデア

4

3 に答える 3

2

これはキーボードベースの簡単な解決策です(私はC++を想定しています):

値がすべて という配列にあると仮定しましょうvalues:

const int NUM_VALUES = 5;
int values[NUM_VALUES];

選択した値を追跡します。

int selectionIndex = 0;

キーの押下を処理する関数を作成します。

void keyPressed (unsigned char key, int x, int y) { 
    if (key == GLUT_KEY_LEFT) {
        if(--selectionIndex < 0)
            selectionIndex = NUM_VALUES - 1;
    } 
    else if (key == GLUT_KEY_RIGHT) {
        if(++selectionIndex >= NUM_VALUES)
            selectionIndex = 0;
    }  
    else if (key == GLUT_KEY_UP) {
        values[selectionIndex]++;
    }  
    else if (key == GLUT_KEY_DOWN) {
        values[selectionIndex]--;
    }   
}

最後に、初期化で次のリンクにリンクkeyPressedglutKeyboardFuncます。

glutKeyboardFunc(keyPressed); 
于 2013-01-30T18:59:33.977 に答える
2

これを実現する最も簡単な方法は、さまざまなキーボード入力を使用することです。スイッチステートメントを使用して、さまざまな可能性を区別し、変数内に値を格納するだけです。シェーダーからアクセスする必要がある場合は、値を均一に使用してください。

于 2013-01-30T19:00:26.257 に答える
0

http://www.antisphere.com/Wiki/tools:anttweakbar - AntTweakBar を使用することをお勧めします。これは、使いやすく優れた GUI ライブラリです。

基本的に、変数を簡単に配置できるウィンドウをレンダリングします。

これを初期化し、変数を追加するだけです:

float myFloat = 0.0f;
TwAddVarRW(myBar, "myFloat", TW_TYPE_FLOAT, &myFloat, "min=-10.0 max=10.0 step=0.1");
于 2013-01-31T06:46:55.820 に答える