glut教程
彈出式選單基礎
彈出式選單(像點滑鼠右鍵出來的選單那樣的)也是
glut的一部分,雖然它不能實現我們經常看到的windows系統彈出式選單的所有的功能,但是它也有很大的作用。給乙個程式增加選單提供了乙個比鍵盤更簡單的方法來和程式互動,選擇不同選項,而不用去記那些按鍵。
我們首先要做的是建立選單,建立選單函式
glutcreatemenu的原型如下:
int glutcreatemenu(
void (*func)(int value));
引數:func:為新建的選單處理選單事件的函式名。
這個函式的返回值是選單的識別符號(
menu identifier)。
我們的程式中,我們可以相加多少選單就加多少選單。對每個選單我們要指定乙個**函式,而且我們可以指定相同的函式。下面為選單增加一些條目(出來個空選單也沒什麼用)。
使用的函式是
glutaddmenuentry:
void glutaddmenuentry(
char *name,int value);
引數:name:選單名稱的字串。
value:當你選擇選單裡的一項後,這個值就返回給上面的
glutcreatemenu裡呼叫的函式。
這個函式根據函式名來看,就是給選單裡新增條目的,可以一直新增(這裡有個順序,自己實驗下就明白了的)。
好了現在有了乙個彈出式選單。但還有最後一件事要做,就是把選單和乙個滑鼠鍵連線起來(
void glutattachmenu(
int button);
引數:button: 乙個整數,指定選單和哪個滑鼠鍵關聯起來。
botton 可以去下面的值
;glut_left_button
glut_middle_button
glut_right_button
下面就是乙個應用了上面所有函式的例子。
...
#define red 1
#define green 2
#define blue 3
#define white 4
...
void createglutmenus()
注意
red,blue,green,和white必須定義為整數,再就是你必須為每個選單(選單裡的條目)定義不同的value,
下面我們寫處理選單事件的函式。我們將使用我們的選單來設定三角形的顏色。函式如下:
void proces**enuevents(int option)
}
剩下來的就是把我們的
createglutmenus函式放到main函式裡。下面的**就是當前的main函式。
void main(int argc, char **argv)
glut7.zip)。
下面我們還來看兩個函式,第乙個允許我們斷開滑鼠按鍵和乙個選單的關聯。前面我們用
glutattachmenu來在滑鼠和選單間建立關聯,但我們有時候需要斷開這種關聯。完成這個工作的函式是glutdetachmenu。函式原型如下:
void glutdetachmenu(
int button);
引數:button:要斷開的滑鼠按鍵。
button的取值和
glutattachmenu一樣。因此,要是我們想斷開關聯我們可以這樣:
...
glutdetachmenu(glut_right_button);
...
最後,如果你想恢復被選單使用了的資源,我們可以銷毀(
destroy)它,相應的函式是glutdestroymenu,它的原型如下:
void glutdestroymenu(
int menuidentifier);
引數:menuidentifier:要銷毀的選單的識別符號,它必須和函式
glutcreatemenu返回的值相同。
好了,到這裡你已經知道了基本的在
glut中建立選單,下章我們將探索更多的彈出式選單功能。
(汗 - -|| 最近考試,煩。 考完了一定盡快完成這翻譯。 感覺他這說的挺囉嗦的,稍微看下後,再自己看看源**,估計就懂了,再自己寫程式時也無意識的用用選單功能,就基本上會了。 那個識別符號很重要的,別忘了。
nCode DesignLife案例教程十三
在本案例中,我們將使用designlife以批處理模式執行疲勞分析。ncode designlife對有限元應力結果進行疲勞分析。designlife最常用於互動模式,如其他示例所示。它也可以在批處理模式下執行,這可以有物流和效能方面的好處。有限元模型和輸入荷載與ncode designlife案例...
nCode DesignLife案例教程十五
在本案例中,我們將使用designlife的creep engine和hybrid load provider執行蠕變分析。此案例的檔案位於ncode安裝資料夾中的 demo designlife 15 creepanalysis 下。需要的檔案是 constantstress constantte...
nCode DesignLife案例教程十八
本練習的目的是學習如何使用designlife從線性動態有限元結果中進行疲勞計算。在荷載可以顯著激發共振模式的結構中,線性靜態疊加可能無法準確計算產生的應力時程。當共振激發時,某些位置的位移將大於施加靜載荷時的位移,因此模型中的應力也將增加。瞬態有限元分析將通過表示結構中的質量 剛度和阻尼以及在分析...