2011-02-26 16 views
1

問題上的代碼是:從「紅書」

open_window(); 
for(i=0;i<100000;i++){ 
    clear_the_window(); 
    draw_frame(i); 
    wait_until_a_24th_of_a_second_is_over(); 
} 

書上說,此代碼的問題是:假設圖紙需要近一個完整的1/24秒。繪製的項目第一個對於全部1/24秒是可見的並且在屏幕上呈現固體圖像;當程序在下一幀開始時,將被清除的項目朝向末尾立即清除。

我不太明白「第一」和「結束」是什麼意思?如果循環中的三個函數被順序調用,那麼問題是什麼?除非它不是一個順序程序?

回答

2

說這個跨度10個污水處理廠佔地一秒鐘的1/24:

  1. 清除窗口
  2. 項目A開始繪製...
  3. A被完全可見繪製了近1/24第二
  4. B項開始繪製...
  5. ...
  6. ... B的昂貴繪製...
  7. 乙畫完 - >不會顯示太長
  8. C項開始繪製...
  9. ...
  10. 畫完Ç - >將持續很短的下一個迭代是 內在

-------下一次迭代-------

  1. 清除窗口
+0

所以它意味着每個迭代將被允許1/24秒完成,因爲繪圖需要更長和更長的時間,所以不會有足夠的時間來渲染完整的視圖,而是轉到下一次迭代。我對麼? – Rn2dy 2011-02-26 18:43:05

+0

這是正確的。 – 2011-02-26 18:48:12