看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《a1781781781 (小米嘎)》之銘言: : 如題,小弟我最近再用turbo C寫繪圖程式 : 使用graphics.h進入繪圖模式 : 每次繪圖後都使用cleardevice清除螢幕畫面 : 但我畫面更新太快造成畫面閃爍嚴重,不知道有沒有辦法解決?!
EdisonX: 很多 os 都不再支援了, 未來第一個面臨的是升級問題 09/19 12:04
EdisonX: 再來是有很多更好的 compiler / IDE 可以取代 tc09/19 12:04
: 我們實驗室都用DOS寫TC搭配AD/DA卡作馬達控制 首先我還是要再強調一次,如果可以移到其他 OS 的話請盡早移吧, 控制 AD/DA card 或 motor control ,幾乎所有 compiler / IDE 都辦得到, 畢竟這屬簡單 IO 控制。 回歸正題,所有的閃爍現象原因都是如此: 畫上現在的文字背景(A) --> 清除成預設的文字背景(B) --> 畫上更新的文字背景(C) 換句話說,只要把 "清除" 的動作拿掉就不會造成閃爍,也就是不要用 clear device。 不論是 DOS / Console 程式還是 Windows 程式,目前的手法有兩種作法, 都必須把顯示資料存在記憶體裡做後續的繪制,這塊記憶體假設叫 BUF_CUR。 第一種作法是在運算時更新 BUF_CUR 內容,在顏色、文字完全相同時就不更新, 不同才更新,這方法是我在 TRACE 早期 TC 時代專案發現前輩先進使用的方法, 但說實在話,這方法我覺得維護 UI 顯示那裡很複雜、鎖碎。 第二種是準備另一個 BUF_NXT ,目前顯示的是 BUF_CUR,運算完後先把顯示內容 貼到 BUF_NXT,最後再將 BUF_NXT 貼到 BUF_CUR 裡去做顯示,中間一樣不呼叫 clear device。 以上,供參閱。 -- 「自從我學了 C# , 人都變聰明 , 考試都考一百分」 「自從我學了 VB , 皮膚都變好 , 人也變漂亮了 」 「自從我學了 Java , 明顯變壯 , 個子也變高了 」 「自從我學了 C++ , 內分泌失調 , 頭都禿了... 」 < Kuso 星爺語錄 > -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.169.158 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1442637680.A.5A9.html ※ 編輯: EdisonX (123.195.169.158), 09/19/2015 12:44:36
a1781781781: 第二種方法怎能不用cleardevice? 09/20 10:50
a1781781781: 畫面隨時在更新的話 09/20 10:50
EdisonX: 沒人說畫面更新一定要先清除吧 09/20 10:58