看板 Knuckles
作者 標題 物件導向--作業2
時間 2008年09月10日 Wed. PM 09:12:48
看完第13章後...
1. 繼續上個作業寫的Matrix類別
加上多載運算子 = + - * ==
使Matrix產生的物件 M1, M2, M3, M4
可做以下的運算
若 M1, M2 的大小相同
M3 = M1 + M2
M4 = M1 - M2
cout << ((M1==M2) ? "M1==M2" : "M1!=M2") << endl;
若 M1 為 i*k, M2 為 k*j 大小的矩陣
M3 = M1 * M2
2. 把之前寫的BITMAP程式用物件導向的方法改寫
使主程式可以像下面這樣寫:
BITMAP bmp1; //產生一個BITMAP物件
bmp1.LoadBmpFile("lena.bmp"); // 載入圖片
int height= bmp1.GetHeight(); // 取得圖檔的高
int width = bmp1.GetWidth(); // 取得圖檔的寬
BITMAP bmp2; //產生第二個BITMAP物件
bmp2.Create(width,height,24); //建立一張24 bits per pixel的空白圖片
int x,y;
DWORD color;
for(y=0;y<height;y++)
for(x=0;x<width;x++){
color = bmp1.GetPixel(x,height-y-1);
bmp2.SetPixel(x,y,color);
}
cout << "將圖形做上下顛倒" << endl;
bmp2.SaveBmpFile("lena2.bmp");
cout << "已儲存新的影像,檔名為lena2.bmp" << endl;
bmp1.LoadBmpFile("lena.bmp"); // 載入圖片
int height= bmp1.GetHeight(); // 取得圖檔的高
int width = bmp1.GetWidth(); // 取得圖檔的寬
BITMAP bmp2; //產生第二個BITMAP物件
bmp2.Create(width,height,24); //建立一張24 bits per pixel的空白圖片
int x,y;
DWORD color;
for(y=0;y<height;y++)
for(x=0;x<width;x++){
color = bmp1.GetPixel(x,height-y-1);
bmp2.SetPixel(x,y,color);
}
cout << "將圖形做上下顛倒" << endl;
bmp2.SaveBmpFile("lena2.bmp");
cout << "已儲存新的影像,檔名為lena2.bmp" << endl;
--
※ 來源: 台大電信 DISP 實驗室 (http://disp.twbbs.org)
※ 作者: Knuckles 來自: 140.112.175.128 時間: 2008-09-10 21:12:48
※ 編輯: Knuckles 來自: 140.112.175.128 時間: 2008-09-10 23:37:10
※ 編輯: Knuckles 來自: 140.112.175.128 時間: 2008-09-11 01:16:49
Matrix 類別:(右鍵另存)
Matrix.h
Matrix.cpp
main.cpp
※ 編輯: Knuckles 來自: 140.112.175.128 時間: 2008-10-19 02:19:26
※ 編輯: Knuckles 來自: 140.112.175.130 時間: 2009-05-31 15:27:37
※ 編輯: Knuckles 時間: 2015-10-19 07:38:56
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 389
回列表(←)
分享