顯示具有 2010hw1 標籤的文章。 顯示所有文章
顯示具有 2010hw1 標籤的文章。 顯示所有文章

2010年11月27日 星期六

hw1


hw1

這次是要用bcb做一個類是小畫家的程式 





目前簡易版小畫家有的功能 : 開啟舊檔 , 鉛筆 ,橡皮擦 ,改變顏色 ,清除畫面 ,另外可以做出圓,正方形, 三角形三種形狀的線條形狀 ,

這次的作業 , 發現要做一個簡易版小畫家的功能  ,真是不簡單 ,做的過程都是上網查詢,參考論壇或是有些小畫家的教程教學慢慢寫出來 . 以前有用過illustrator和photoshop,現在才知道裡頭的功能是如此複雜 , 不過有做出這個簡易版的小畫家 ,還是滿有成就感的  ,本來有找到類似photoshop和illustrator的一個貝茲曲線的寫法 ,不過失敗了滿可惜 ,下次會再嘗試!

2010年11月22日 星期一

HW01

這次的作業很有趣~是用bcb去做一個類似小畫家的程式~
以前沒有用過bcb坐過這樣類似的多媒體程式,
只有用過flash做過小畫家類似程式而已,
所以上網搜尋了一些資料才完成這次作業:)
功能介紹:
讀檔:我是先讀一個圖片檔~你可以在上面做小畫家的功能
畫筆:我是可以選擇顏色也可以用粗細,一開始還在說怎麼用畫盤選擇顏色
不過有 "DialogsàColorDialog "可以讓我使用~所以我只要執行色彩工具箱就可以改變顏色^^
橡皮擦:其實我只是將畫筆工能調成白色而已^^


印章:其實就是將老師上課教的蓋原形方型六角型功能放上去而已~
再加上可以選擇顏色變換和選擇印章大小的功能(以下示範)
清空畫面

用小畫家空能畫ㄉ~圓形ㄉ部分是蓋印章後選擇大小後蓋出來的

最後是存檔功能^^

最後成品就出來啦:)






HW01


他叫tempo,是一隻奶油臘腸!
今天作業要做一個小畫家,所以拿他來當背景圖。




旁邊的按鈕選項可以選擇按鈕的圖形,

有正方形、長方形、圓形、多邊形、還有鉛筆等功能,

旁邊的功能選單中還可以調整筆刷的寬度,

也可以清除所有的印章,下面還可以選擇印章外框的顏色、填滿的顏色等‧‧



上面File中的Open可以選擇要開的背景圖檔,

Save可以儲存畫完後的圖檔,

End可以將整個小畫家Form1檔關閉。


這是儲存後的bmp檔。

















2010年11月10日 星期三

HW01

HW01

簡易版小畫家






功能介紹:





*基本功能:能於畫板上任意塗鴉









*讀取/儲存圖片:點選視窗左上角,可以選擇開啟圖片或儲存圖片





         開啟圖片->選擇欲使用的圖檔,呼叫之後顯示



               於視窗,並且能在圖片上任意塗鴉





         儲存圖片->將編輯過後的圖片做儲存的動作









*圖片資料:於圖片右下方會顯示該圖片的檔案路徑,以及使用者滑





      鼠所點該點之X和Y座標、還有該點的顏色RGB。







*調色盤:有基本的五色供使用者選擇,分別為黑、白、紅、綠、藍





     只要點擊該顏色區塊一下,即可變換畫筆成為該顏色。





若覺得顏色不夠用,點取下方的"自訂顏色"按鈕,將會

跑出可自定義顏色之界面(如下圖)





撰寫過程所遇之困難與心得:

第一個所遭遇到的困難就是畫板的部分吧,先前是、倘若沒有讀取任

何圖檔,就直接在畫板的位置點滑鼠左鍵,就會跑出錯誤,導致程式

強制結束,找了很久的問題,才發現,其實只要把以下這兩行用掉,

Graphics::TBitmap *BrushBmp = new Graphics::TBitmap;

BrushBmp->LoadFromFile(OpenPictureDialog1->FileName);

就不會錯了,而且可以直接在畫板的地方盡情塗鴉。

接下來就是畫筆的形狀部份了,正方形沒有問題,但是畫六邊形的時候

那個X,Y座標就讓我思考了一陣子,一開始做的形狀歪七扭八,不過經

過幾次嘗試,還是順利成功做出來了

TPoint points[6];
points[0] = Point(X,Y);
points[1] = Point(X+10,Y);
points[2] = Point(X+20,Y-15);
points[3] = Point(X+10,Y-30);
points[4] = Point(X,Y-30);
points[5] = Point(X-10,Y-15);


原來他是像人拿著一隻筆這樣,從第一個點畫到第二個點,從第二個

畫到第三個點,以此類推,要有依序的給予每個點正確的座標,不能

跳著給的。

還有常常會有,就是要刪掉不會用到的物件,結果刪除後造成程式跑

出error,或是不小心誤刪了某個物件的函數結果造成程式無法

正常執行的窘境,我在撰寫的過程中也常常遇到這樣的問題,研究了

很久發現,還要把這個地方(如圖中的紅圈處)的東西刪除,才算是

真正刪乾淨唷!

(以下為圖例)



這裡就有點像是宣告各個物件函數的地方,如果只是在主程式那邊把

函數刪掉,沒有把這邊的也刪掉的話,就會造成錯誤,有的時候如果

看到一些例如某物件未定義的錯誤訊息,不彷來這邊看看,是名子弄

錯了還是怎麼樣。

其實我覺得自己對BCB還不是很熟練,應該是還摸不夠久的關係,

而且程式語言這種東西不是說單看書本或是聽老師講解看示範就能夠

弄懂的東西,一定要實際撰寫,動腦筋去思考才能有所收穫,其實有

很多功能也是自己慢慢摸才發現的,沒實際去摸過幾遍真的會不知道

其實BCB有很多好用的功能呢!

和同學討論也是很重要的,有時候遇到一些困難,與其自己苦思很久

或是上網找了老半天的資料,倒不如直接向同學詢問,而且多和同學

交流,會發現很多自己沒有想到的問題,例如程式是否會存在著某些

漏洞?亦或是這樣的程式寫法較簡潔清楚而不會過於冗長雜亂,學習

他人程式撰寫上良好的地方、並吸收之,記取他人撰寫程式時所遇到

的錯誤、以此警惕之。

非常感謝老師寬宏大量將繳交作業的時間延長,讓我能夠把這次的程

式再寫得更完整一點,研究了很久雖然花了不少時間,但是有學到東

西的感覺真的很不錯,每一次撰寫程式就是令自己成長一次,看來我

要多加練習,以增進自己的能力!

最後,附上這次作業的完成圖~

HW1

大家好 這是我設計的
無敵陽春未完成版小畫家
這是初始執行畫面
MainMenu中的File有
open→開檔案
save→存檔案
close→離開程式 (可是不會判斷使使用者有沒有編輯並做存檔 所以...)

畫面中Color右邊的按鈕是利用Panel元件
點下去會連結到ColorDialog元件
然後使用者就可以盡情的選擇你想要的顏色啦!

畫面中PenSize右邊的下拉選單是利用ComboBox元件
我設定了10種筆刷的大小 其實就是1~10拉
點選後搭配使用下列繪圖方式筆刷大小就會改變哩!

再來畫面旁邊就是選擇繪圖方式 使用的是RadioButton元件
None→不做任何的動作
Line→畫線
Rectangle→畫矩形 (結果只能畫正方形 囧)
Circle→畫圓 (只有一種大小的圓XD)
Eraser→橡皮擦(只有線條模式)

至於右上方的幾個參數
FileName→開外部圖檔的時候會顯示檔案來源
(X,Y)→顯示滑鼠移動到畫布上的座標
(R,G,B)→顯示滑鼠移動到畫布上所顯示顏色的三原色參數

總結:
上面小字的部分 就這個程式的BUG點...
其實還有些BUG還沒弄好
比方說 選擇筆刷大小後,畫圖的樣式要重新點選才能畫圖...
這問題我一直弄不好

未來這個無敵陽春小畫家還要做些更正
除了把上面的BUG處理好之外
還要新增一些功能
比方說 開新檔案 畫更多種不同的圖形....


最後附上一些執行圖

(包含使用了畫線,畫矩形,畫圓,橡皮擦,改變顏色,改變線粗等功能)

(也可以開外部的圖檔喔)

(外部的圖檔也是可以編輯的)


以上
最後祝大家期中考順利(茶)

HW1


















這是自己設計的小畫家介面,
先介紹裡面的介面,
首先是左上角那一塊,
Dialog區(不含最左邊凸出的那一塊),
我放了 SavePictureDialogOpenPictureDialodColorDialogPrintSetupDialog
最左邊的 MainMenu 我設定了:
File(F)區:New(N) Load(L) Save(S) Exit(E)
Edit(E)區:UnDo ReDo
Tool(T)區:Pen(P) Line(L) Eraser(E)
再來就是旁邊的文字,
File Name」是紀錄引用圖檔的來源,
(XY) 是說明在 Image區 所點的位置的座標,
(R,G,B) 是說明在 Image區 所點的位置的顏色,
而下方的虛線區是 Image區
他可以將引用的圖檔放入此區,
但是只能引用 BMP ICO EMP WMF 類型的圖檔,
再來是右下角的六個方框,
那是我用 SpeedButtn 設定成一個群組,
而上面的小圖示我用「正宗小畫家」自己畫的,
可惜尚未把功能啟動,
最後...啊不是...還有隱藏功能稍後再說,
右下角的顏色方塊是用 CColorGrid(顏色的使用也是尚未設定),
真的是最後了,
隱藏的兩樣功能:
(1)畫直線:使用者可以在任何地方(除Image區)畫直線,直線設定預設值是黑色跟寬度2。
(2)畫多邊形:使用者可以在 Image區 上進行多邊形的繪畫。

以上是我的自製小畫家內容報告
心得:
之前我對多媒體應用的相關課程都蠻有興趣的,
但是平常的課程大多跟多媒體沒有直接關係,
直到我來到這堂課,
做了這個作業,
才覺得之前學的東西總算有發揮的地方了,
平常我有程式問題大多是找人幫我看程式碼,
但這次我是自己上網自己找資料,
還好網路資源非常豐富,
提供了我許多靈感,
所以,
這次的作業除了找回我之前所學的感覺之外,
還讓我有更多的自主的機會,
以上報告結束。