三維形體的運(yùn)動(dòng)是實(shí)現(xiàn)交互式的三維應(yīng)用程序的難點(diǎn)和復(fù)雜之處,也是本系統(tǒng)的主要部分和核心之處。大型機(jī)械設(shè)備的部件動(dòng)作主要分為平移和轉(zhuǎn)動(dòng)兩種基本運(yùn)動(dòng)。Java3D本身提供了一系列內(nèi)插值器用于控制三維形體的運(yùn)動(dòng),但由于不能預(yù)先設(shè)定三維形體的運(yùn)動(dòng)方向和軌跡,并且在操作大型機(jī)械設(shè)備時(shí),經(jīng)常需要兩只手同時(shí)進(jìn)行操作,這時(shí)內(nèi)插值器并不能滿足系統(tǒng)的需要,因此可以采用多線程來控制三維機(jī)械模型的運(yùn)動(dòng)。
實(shí)現(xiàn)三維機(jī)械模型運(yùn)動(dòng)是通過啟動(dòng)一個(gè)新的線程來改變?nèi)S機(jī)械模型的局部坐標(biāo),在線程中通過改變局部坐標(biāo)系對(duì)象中的變量值,再重新陜速地把三維機(jī)械模型加載到更新的局部坐標(biāo)系下,通過不斷改變?nèi)S機(jī)械模型的局部坐標(biāo)來實(shí)現(xiàn)運(yùn)動(dòng)。在線程中使用sleep0函數(shù)來控制三維機(jī)械模型運(yùn)動(dòng)的速度,可以通過設(shè)定sleep0函數(shù)中的時(shí)間值來控制運(yùn)動(dòng)速度的大小。通過多線程控制三維機(jī)械模型運(yùn)動(dòng)的好處:可以精確控制機(jī)械模型的運(yùn)動(dòng)速度,并且可以快速檢測(cè)出各個(gè)機(jī)械模型的具體位置并將位置參數(shù)快速顯示在顯示設(shè)備上,使用戶可以直接準(zhǔn)確地獲得各個(gè)機(jī)械模型的具體位置,為進(jìn)行下步的操作和減少錯(cuò)誤的操作提供依據(jù)。文章由http://www.fengdejixie.cn/首發(fā)于機(jī)械社區(qū),轉(zhuǎn)載請(qǐng)保留版權(quán)。