2012年12月14日 星期五

99360152 張志強

                    第三個作業為色彩模型,看似簡單,可是若不仔細地想過在寫程式的話,還是會有BUG纏身的!!  上課聽老師講解很容易,但實際動手做才發覺有難度,以下程式成果展示 :


    左圖為光線三原色;右圖為顏料三原色,當初寫這程式時,也有顏色覆蓋的問題,經過與同學討論之後,才發現要呈現一種顏色時,另外兩種顏色不設值,例如 : 要呈現藍色,只要將藍色設為255,則綠色與紅色皆不設值,依此類推,這樣就能呈現如同上圖一樣完整。

   
上圖為RGB的色彩模型,左邊為藍色與綠色、紅色為零,中間為紅色跟藍色、綠色為零,右邊則是綠色與紅色、藍色為零,三張圖的原點皆為最左上角,而最右下角為兩色的混和。做到這裡時,我有一個一直想不通的問題,就是如何運用TrackBar拖曳使得顏色加進圖裡,是將TrackBar的Position直接加在畫圖程式嗎 ? 若是這樣,情況如下圖 :


在上圖可以看到不管怎麼移動TrackBar ,其值給不進這三張圖裡,而這三張圖也沒因為TrackBar的移動有所改變,於是就拿程式問老師,一問之下原來是因為沒有將Image內的記憶體做改變,也就是沒有做Refresh的動作,自然而然的程式就不理會你所做的指令,因為要不時地檢查每張Image的記憶體有沒有做更改,這樣既耗時又費力。於是加入Refresh的指令之後,果然圖的顏色就慢慢的改變了,做了Refresh之後,記憶體也做了更改,更改之後,程式也偵測到記憶體有所改變,就會重新畫一遍,當一直移動時,每張Image就會因記憶體不斷的更新,而圖就會不斷地被重畫,成果如下 :


加入Refresh之後真的做改變了,左邊為藍色值0~255做變化與綠色值0~255做變化,接著加入紅色值128所呈現的圖,中間與右邊依此類推。


 左圖為紅色加入255時的樣子;中間為綠色加入255的樣子;右邊為藍色加  
 入 255的樣子,之後想加入多少色值,隨心所欲 !!!


   我發覺這次作業並不難寫,真得從頭做到尾就會有成就感,其實發覺了  
   有了決心去寫真的不難,而且也可以真正的學到知識,也發現如果有甚
   麼地方不懂,問就對了,因為沒有人甚麼都會,這也教我要懂得善用資
   源,原來了解並解決問題是一件開心的事 !!




                       

沒有留言:

張貼留言