看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《tyc5116 (累人啊....)》之銘言: : 旋轉的函數內有參數要設定每次旋轉的角度(徑度) : : 然後我的問題在於視窗訊息多久會執行一次旋轉的函數 : : 應該是取決於電腦的速度,這樣要怎麼控制轉一圈的時間呢? : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 220.143.153.249 : 推 VictorTom:它要自己轉??那想到的就是timer, 不過DX裡我就不知道怎 11/30 00:56 : → VictorTom:麼搞了, 就算我用OGL也只會按鍵然後等Win msg處理, 更暴 11/30 00:57 : → VictorTom:力的直接clock算秒差然後移/轉動object再re-draw....XD 11/30 00:57 : → tyc5116:我想到的也是timer,可是每次旋轉角度怎麼得到? 11/30 01:02 : 推 VictorTom:每次旋轉角度不是你想給它怎麼轉就叫它轉的嗎XD 11/30 01:34 恩... 這是DirectX的函式 D3DXMatrixRotationX( &matWorld, timeGetTime() / 1000.0f ); 每次呼叫到這裡的時候便旋轉角度(timeGetTime() / 1000.0f) 我怎麼知道這個值要多少才會轉完一圈剛好1秒呢? 目前我並不知道電腦執行的速度有多快,一秒內會執行到這個函數幾次啊? 這是我主要的問題啦~~再麻煩了,謝謝^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.18.48.28
VictorTom:不同的HW畫的速度不同, 基本上這是不太能預期的, 也許你 11/30 15:44
VictorTom:可以把問題反過來想, 如果我要讓這個cube分36個frame轉 11/30 15:46
VictorTom:完一圈, 那麼每個frame它有多少時間可以畫; 那麼HW畫得 11/30 15:46
VictorTom:夠快最好, 畫的不夠快下次時間到了它就會轉到更大的角度 11/30 15:46
VictorTom:去; 用這樣的想法, 應該會比較容易實作的出來:) 11/30 15:47
VictorTom:舉例, 希望cube以60 frame用一分鐘剛好轉完一圈, 那麼每 11/30 15:50
VictorTom:秒cube應該轉6度, 所以畫完一個frame 6秒內它可以等或繼 11/30 15:51
VictorTom:續畫下一度, 但如果它1 frame就花了3秒, 下次你就直接跳 11/30 15:51
VictorTom:3x6=18度來畫, 這樣轉動會變得比較smooth, 但是原則上在 11/30 15:52
VictorTom:最後一個frame到之前都勉強還能跟得上轉動XD 11/30 15:52
VictorTom:續畫下'六'度; 變得比較'不'smooth; 修正一下漏誤字Orz 11/30 15:54