顯示具有 97361061 陳星同 標籤的文章。 顯示所有文章
顯示具有 97361061 陳星同 標籤的文章。 顯示所有文章

2010年1月14日 星期四

HW07

最後一次的作業是要我們做一些處理音訊的程式,老師說可以是兩首歌合在一起,第一首歌快沒的時候,第二首歌聲音可以慢慢出現(由小變大),然後第一首歌也會由大變小聲。

但是這個我也不出來,可能還要跟同學或老師一起研究才行,然而這次我選擇做出像在播放音樂都會有一些示波圖。






















這個是讀取音樂檔之後的波形顯示。
























有兩個控制X與Y軸的縮放比例,上圖是把Y軸的數值調大之後的波形,如圖所示跟原本的波形比較之後,上下長度就縮減很多,如果數值越小那麼波形的高度就會變更大。

下圖則是把X軸的數值調小,所以他每個波中間的間格就變大許多,這次的作業是有問同學一些程式才寫出來的,因為在顯示波形那邊的程式不是很有想法,雖然老師有在課堂上稍微提到過,但是還是沒啥概念,但經過同學的講解跟網路上的資料後,蠻順利的就完成了。

HW06

之前在作業三做過讀取圖片檔,然後把檔案資料show出來,這次作業六是要換成讀音樂檔,老師在課堂上有說過其實都一樣,差別不是很大,其實那天上課的時候,利用老師給我們寫程式的時間,就已經打了一些了,但是好像還有點錯,後來因為已經下課了所以就儲存起來回家再繼續寫。

後來因為fseek、fread那邊不太知道怎麼改,就找google翻書,可能沒有仔細看所以都沒找到,後來在閱讀其他同學已經繳交的作業,才知道是哪邊有錯,改了之後真的對了,還有可以按一下播放鍵,讀進來的音樂檔就會播放出來,在來就是做一些後續的動作,這項作業就完成了。



















這就是讀取音樂檔和對照資料的圖片

2010年1月7日 星期四

HW08

數位媒體概論心得

很快的又來到期末了,18個星期一下就要結束了,當初會選這門課,完全是『數位媒體概論』這個名字吸引了我,一開始我想應該是不用寫程式的吧!!因為那時候覺得有資料結構就夠了........,沒想到上了第一堂課才發現原來也要使用C++Builder來寫程式,那時心裡難免有點不開心。

當老師第一次教我們寫程式時,才發現讀一張圖原來這麼容易,只要幾行程式就可以了,然後如何在圖片上畫線等,這些對我來說還不是很困難,但是後來教到fopen、fseek、fread這三個指令,這些東西真的讓我遇到挫折,甚至到現在我也還不太會用,我並不是討厭寫程式,但我覺得老師在之前所交的概論會讓我比較有興趣,像是在教GIF時,那次應該是我從第一節課到最後一節課都很認真的在聽課,那次上課結束後,心裡OS:"哇!今天學到好多東西喔",雖然那天只有三堂課,還是很充實。

不是第一次給老師教了,在大一上的計概,老師推薦的數位時代雜誌,真的可以看到很多資訊,我想讀那本雜誌可以清楚的了解資訊界的未來走向,並且知道當時的當紅的趨勢是什麼。
至於我對數位媒體概論一學期下來的心得,我覺得不是老師你教的不好,而是我不夠努力去了解程式,2週一次作業很OK,進度也不會太快,那我想給老師的建議是『一週教概論,一週教程式這樣的循環應該不錯,至少這樣可以讓我比較想去學BCB,而不是滿腦子只想著拿到這3學分』,希望這些建議對老師明年的課程教學有些許的幫助,也謝謝老師這一學期這麼努力認真的教學。

HW05

第五週的作業老師是要我們讀取GIF檔案中的調色盤資料,然後來要依照亮度來排序。
上課時雖然老師已經有貼範例程式給我們看,但是因為自己程式裡的元件名稱跟老師的幾乎都不一樣,所以那天在課堂上還沒有做出來。

然後回到慢慢的看著老師的程式碼,邊看邊改自己的程式,雖然有些程式還是查一下書才知道,一開始有點混亂,但看了蠻長一段時間之後,終於......(淚目)>"<



















這是一開始讀GIF檔(金龜子)的調色盤排序。

然後開檔順利完成之後,再來就是要依照亮度來排序,老師有在課堂上說過就是用C++裡所交過的氣泡排序法,因為有點忘記怎麼寫了,所以回去看了以前的程式,以前寫的程式大部分都是比數字大小,大到小或是小到大排序是取決於在判斷時寫的大小於,於是就依照這個想法慢慢去寫,還有靠查書、查GOOGLE做出來的結果。




















這就是利用氣泡排序法之後的調色盤。

2009年12月1日 星期二

HW04

不知不覺已經要交到第四次的作業了,因為前三次的作業程式碼都是一直加上去的,所以現在已經有點多了,有時候要找到我要的那行都要仔細的看,真的有點亂,但是我覺得這樣很好,因為這樣每週寫作業的時候就會稍微複習到前面的程式,這樣也比較容易記的住。



















上圖是之前教過的用LoadFromFile讀一張BMP讀檔近來,這些是上次再做作業時用到的指令fopen , fseek , fread,這次是要利用這些掃一張BMP的圖出來,上次的作業就已經花了好一段時間才做好,因為要解決版本不符,或是兩張圖出來為什麼不一樣大,還有捲軸出不來,後來是在課堂上聽到用動態宣告一張畫布,這樣捲軸的問題就可以解決了。

還有我再做這週作業時也想到如果把原本用LoadFromFile的圖,跟掃出來的圖放在一起的話,看起來好像沒有不一樣的地方,我一直想有什麼方法可以分開,但是都想不到,幸虧有同學在網誌有提到PageContorl,也提到在課本第幾頁有,所以我就去翻了一下,還真的可以把兩個分開來。



















這是掃完之後的圖,雖然速度稍微慢了一點,但是讓我們懂了其他讀圖的方式,還有上次因為是期中考前一週,所以那天在圖書館從早上看到快晚上,所以沒去上到那次課,雖然還不知道到圖書館讀完成績有沒有比較好,但是我知道是我太慢開始讀了,像工數就快不行了,但在期中考後有問一下這週的作業要怎做,下次一定不會因為要讀書而沒去上課了,這門課也很重要,一次沒聽到課就有蠻多地方看不懂的。

2009年11月4日 星期三

HW03




版本不符的問題
還有之前都會把程式放在網路硬碟,到課堂上在DOWN下來,但是都打不開,經由老師的說明,原來是版本不同所造成,一開始你要先NEW一個Application,然後把Unit1.cpp刪掉,再加一個新的project近來就可以了。
這幾次上課都在教fopen.fseek.fread,上上個禮拜完全不知道他們是要怎麼用,但是經過2次上課之後,有稍微懂了一些。
這次遇到的困難很多,但是跟著做就慢慢會知道怎麼寫程式了,還有版本的那個問題也困擾了好久,多虧老師的示範,才讓我們了解如何轉換。

不會寫fseek.fopen.fread的時候,在網路上找了很多,但是好像幫助都不是很大,我想這3個是屬於C語言的東西,看書的話應該好學多了,幸虧老師最後一節有跟我們講解程式,要不然真的只是把程式抄上去而已,還有在下課前練習的Header的東西,有試著打上去看看,但是都有錯誤,可能還要多練習了。

2009年10月19日 星期一

HW02

彩色轉灰階影像




















上圖示這週作業將一個彩色影像轉為灰階影像,在上次上課快結束前,有先練習開一個圖檔,然後顯示這個圖是幾位元什麼顏色的,剛開始SWITCH都打不完整,雖然最後是老師教我們才打出來的,但自己嘗試過後再知道答案,我覺得這樣比較好了解。

上週老師在討論一個圖電腦是如何的排法,大部分的算法都在一上的計算機概論教過了,類似二進制,還有說明BCB中其他指令,還有要完成一個作品的各各步驟,像剛開始要先拉你要的元件,點進去寫程式,再來是物件、屬性、小元件等等,我想這些如果回家有動手在練習BCB的話,應該都蠻能理解的。

這次教的東西不是很多,我想老師也是讓我們好消化這些指令等,要不然一次把所有的指令、元件都說完了,我想我回家之後應該會覺得好多好煩,就不想讀他了,上週在課堂上了解很多,順便複習以前的計算機概論。



2009年10月7日 星期三

HW01


C++ Builder

選了數位媒體慨論這門課之後,有想到底會教什麼?以為跟資料結構一樣用C++來寫程式,但讀了一下C++ Builder這本書,才知道C++ Builder對視窗設計的貢獻這麼大,因為它比C++更方便、簡單、快速,一年級就已經體會到C++是蠻困難的東西,更何況要用C++來寫視窗,那可能要高手才行呢!

在課堂上第一次碰到C++ Builder的感覺,有點像我以前學到的VB,老師教了一些指令和程式,都覺得還蠻容易上手,還有非常多樣的元件,要把全部的元件都弄清楚,可能要花不少時間,然後以下是我練習過程與心得。























原來這種事我們也可以容易的做到,我以前還覺得做這些視窗都超難的,結果只要拉一個OpenPictureDialog1就可以開圖了,真是方便。





找了一張圖之後,在Image1MouseMove裡打上:
lblX->Caption=AnsiString(X);
lblY->Caption=AnsiString(Y);
lblRed->Caption=AnsiString(GetRValue(Image1->Canvas->Pixels[X][Y]));
lblGreen->Caption=AnsiString(GetGValue(Image1->Canvas->Pixels[X][Y]));
lblBlue->Caption=AnsiString(GetBValue(Image1->Canvas->Pixels[X][Y]));}
前面兩行是游標到圖的任何一點,就顯現出該點的座標,於上圖中左下角兩格,AnsiString的用意好像是為了以防它有錯誤。
另外三行意思則是游標到圖的某點的RBG數值。
還有圖中下有個紅色的,那是因為我程式內打了,只要我左鍵點某點,那麼該點的顏色就要顯示出來,但是這個程式要打在Image1MouseDown裡的。
課堂上遇到了一個困難,就是左鍵可以有功能,那麼右鍵呢?
我想了很久還是寫不出來,結果老師show出這段程式:
if(Button==mbLeft)
Image1->Canvas->LineTo(X,Y);
if(Button==mbRight)
Image1->Canvas->Pixels[X][Y]=clRed;
如果按左鍵的話,他就會從(0,0)原點到你點的那點連成一條直線,然後右鍵是點一下會出現一個小紅點,另外那條直線還可以用Color1Click這個元件來變換顏色喔。
這次的練習雖然只是入門而已,但是就已經體驗到C++ Builder吸引人的地方,可能只用了這裡面一小部分的元件,也才幾樣而已,但是就讓我知道原來這些視窗設計也可以很容易的製作,讓我覺得這個比VB還好玩多了。