今天仔細(xì)研究了一下glRotatef()函數(shù)參數(shù)的具體意義。angle毋庸置疑就是旋轉(zhuǎn)的角度,而x,y,z三個(gè)參數(shù)則應(yīng)該看成一個(gè)整體表示一個(gè)向量,表示物體圍繞向量[x,y,z]旋轉(zhuǎn)。下面就具體談?wù)勛约喊l(fā)現(xiàn)這幾個(gè)參數(shù)意義的過程。
剛看glRotatef()函數(shù)的時(shí)候?qū)Ω鱾€(gè)參數(shù)的意義很是不明白,自己上網(wǎng)查了一查,但發(fā)現(xiàn)網(wǎng)上說的卻不是我想要的答案。于是潛下心來研究了一番。剛開始看的時(shí)候在參數(shù)angle上根本就沒花什么時(shí)間,對(duì)于x,y,z三個(gè)參數(shù)的研究主要分為了如下幾個(gè)個(gè)過程。初看的時(shí)候是對(duì)三個(gè)參數(shù)分個(gè)來研究的,發(fā)現(xiàn)如果x,y,z中僅有一個(gè)不為0的話,例如x不為0,若x>0,則表示繞x軸正方向旋轉(zhuǎn)angle度,若x<0,則表示繞x軸負(fù)方向旋轉(zhuǎn)angle度,不論x的值是多大,即1.0和0.1代表的都是繞x軸正方向旋轉(zhuǎn)angle度。于是就初步下了一個(gè)結(jié)論,即x,y,z只表示了三個(gè)狀態(tài),即大于0表示繞該軸正方向旋轉(zhuǎn),小于0表示繞該軸負(fù)方向旋轉(zhuǎn),等于0就表示繞該軸不旋轉(zhuǎn)。但是當(dāng)x,y,z三個(gè)參數(shù)中至少有兩個(gè)不為0的時(shí)候發(fā)現(xiàn)根本不是那么回事,因?yàn)楫?dāng)x不為0且為一個(gè)定值的時(shí)候,y取不同值物體旋轉(zhuǎn)的狀態(tài)根本就不一樣,這就推翻了我第一次的假想。到了這里似乎就遇到了一個(gè)瓶頸,任我如何想都想不明白,到了吃飯的時(shí)間居然都感覺不到餓。后來實(shí)在沒有辦法的時(shí)候還是打算先去吃飯,剛穿上外衣的時(shí)候突然一個(gè)想法閃進(jìn)我的腦海,為什么不把x,y,z看成一個(gè)整體呢?帶著這個(gè)疑問我思考了一路,越想越興奮,最后才向x,y,z應(yīng)該表示一個(gè)向量,即物體旋轉(zhuǎn)時(shí)所圍繞的那個(gè)向量。回來后測(cè)試了一下發(fā)現(xiàn)[0,1,1]和[0,2,2]所產(chǎn)生的旋轉(zhuǎn)效果是一樣的,后來又測(cè)試了幾組值,我對(duì)自己的猜想更加地肯定了。
雖然更加肯定了自己的想法,但還是不能說明它是百分之百正確的,還希望各位找找看看能不能再補(bǔ)充一點(diǎn)或者添加一些其他函數(shù)參數(shù)意義的說明。