請問各位高手有關繪圖的問題 |
尚未結案
|
perking
一般會員 發表:9 回覆:5 積分:2 註冊:2004-10-14 發送簡訊給我 |
今天我已經從一張bmp圖片中把pixel的RGB值取出,現在要把RGB放到一個3D的圖中,其中,三個軸分別為R軸 G軸 B軸,
R |
|
|
|____________ G
/
/
B/ 那麼我該怎麼處理呢?
還有,今天我想要把pixel放到R-G平面,R-B平面,B-G平面中
這樣我該怎麼做呢? 以下是我自己寫的程式碼不知道是怎麼回是跑出來都是怪怪的
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { /*我把程式碼省略了一些*/ //下面是把Image2的pixel值儲存起來!!-------------------------------// AnsiString str; int *CalBmp ; int height=bmp2->Height; int width =bmp2->Width ; CalBmp=new int[height*width*3]; int X_axis,Y_axis,ZTo2D;//設定寬高與X,Y軸 並Z軸轉2D所需減去之值 int X1_axis,Y1_axis,ZTo2D1; //RG寬高 int X2_axis,Y2_axis,ZTo2D2; int X3_axis,Y3_axis,ZTo2D3; Byte *ptr=NULL; { for(int r = 0; r < height; r ) { ptr = (Byte *)bmp2->ScanLine[r]; str = " "; // 「歸零」 for(int c = 0; c < 3*width; c ) { CalBmp[(width*3*r) c]=ptr[c*3]; //B CalBmp[(width*3*r) c 1]=ptr[c*3 1]; //G CalBmp[(width*3*r) c 2]=ptr[c*3 2];//R str = AnsiString().sprintf("= ", ptr[c*3]); str = AnsiString().sprintf("= ", ptr[c*3 1]); str = AnsiString().sprintf("= ", ptr[c*3 2]); //------------------------------------------------------------------- //下面是把抓到Image2的pixel丟到3-D中顯示出來!!! ZTo2D=(double)ptr[c]/(double)(sqrt(2)); X_axis=ptr[c 1] 181-ZTo2D; Y_axis=255-ptr[c 2] ZTo2D; Image3->Canvas->Pixels[X_axis][Y_axis] = int RGB(ptr[c*3 2],ptr[c*3 1],ptr[c*3]); //------------------------------------------------------------------- //下面是把抓到Image2的pixel丟到2-D (R-G)中!! ZTo2D1=(double)ptr[c]/(double)(sqrt(2)); X1_axis=ptr[c 1] 80-ZTo2D1; //G Y1_axis=255-ptr[c 2] ZTo2D1; //R Image5->Canvas->Pixels[X1_axis][Y1_axis] =int RGB(ptr[c*3 2],ptr[c*3 1],ptr[c*3]) ; //------------------------------------------------------------------- //下面是把抓到的Image2的pixel丟到2-D (R-B)中!! ZTo2D2=(double)ptr[c 1]/(double)(sqrt(2)); X2_axis=ptr[c] 80-ZTo2D2; //B Y2_axis=255-ptr[c 2] ZTo2D2; //R Image6->Canvas->Pixels[X1_axis][Y1_axis] =int RGB(ptr[c*3 2],ptr[c*3 1],ptr[c*3]) ; //------------------------------------------------------------------- //下面是把抓到的Image2的pixel丟到2-D (G-B)!! ZTo2D3=(double)ptr[c*3 2]/(double)(sqrt(2)); X3_axis=ptr[c*3] 80 ZTo2D3; //B Y3_axis=255-ptr[c*3 1]-ZTo2D3; //G Image7->Canvas->Pixels[X1_axis][Y1_axis] =int RGB(ptr [c*3 2],ptr [c*3 1],ptr[c*3]) ; } RichEdit1->Lines->Add(str); // 把一列的數值丟到 RichEdit 中 } } } //------------------------------------------------------------------- void __fastcall TForm1::Image3Click(TObject *Sender) { //初始畫上XYZ軸 //R軸 Image3->Canvas->Pen->Color=RGB(255,0,0); Image3->Canvas->MoveTo(181,255); Image3->Canvas->LineTo(181,0); //G軸 Image3->Canvas->Pen->Color=RGB(0,255,0); Image3->Canvas->MoveTo(181,255); Image3->Canvas->LineTo(436,255); //B軸 Image3->Canvas->Pen->Color=RGB(0,0,255); Image3->Canvas->MoveTo(181,255); Image3->Canvas->LineTo(0,436); } //------------------------------------------------------------------ void __fastcall TForm1::Image5Click(TObject *Sender) { //R軸 Image5->Canvas->Pen->Color=RGB(255,0,0); Image5->Canvas->MoveTo(80,255); //(x,y) Image5->Canvas->LineTo(80,0); //G軸 Image5->Canvas->Pen->Color=RGB(0,255,0); Image5->Canvas->MoveTo(80,255); Image5->Canvas->LineTo(400,255); } //------------------------------------------------------------------- void __fastcall TForm1::Image6Click(TObject *Sender) { //R軸 Image6->Canvas->Pen->Color=RGB(255,0,0); Image6->Canvas->MoveTo(80,255); Image6->Canvas->LineTo(80,0); //B軸 Image6->Canvas->Pen->Color=RGB(0,0,255); Image6->Canvas->MoveTo(80,255); Image6->Canvas->LineTo(400,255); } //------------------------------------------------------------------- void __fastcall TForm1::Image7Click(TObject *Sender) { //G軸 Image7->Canvas->Pen->Color=RGB(0,255,0); Image7->Canvas->MoveTo(80,255); Image7->Canvas->LineTo(80,0); //B軸 Image7->Canvas->Pen->Color=RGB(0,0,255); Image7->Canvas->MoveTo(80,255); Image7->Canvas->LineTo(400,255); }<已修改> 感謝前輩提醒 發表人 - perking 於 2005/05/30 18:06:58 發表人 - perking 於 2005/05/30 20:43:14
------
good for you!! |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |