座標點的連線問題 |
答題得分者是:istillloving
|
iam4000
一般會員 發表:12 回覆:5 積分:3 註冊:2008-11-27 發送簡訊給我 |
如圖
我想要把這張圖的左右各兩個紅點連線(紅點是我用小畫家點上去的) 程式想要的作法是把這張圖分成四等份,並且用for迴圈找到這四個頂點 目前我的問題是無法把找到的頂點記錄成座標(似乎是要先求得座標才能夠連線) 以下是我程式的大概構想 [code cpp] //這部分是找左上方的第一個點,當遇到第一個灰階值為255的點的時候就把那個點記錄起來 for(int x=0; x < TheBitmap->Width; x ) { for(int y=0; y < TheBitmap->Height/2; y ) { ptr1=(Byte*)TheBitmap->ScanLine[y]; if(ptr1[x]=255) . . . //這裡是主要的問題,我不知道怎麼把找到的那個點用座標記錄起來 } }[/code] 先謝謝各位先進的回答 編輯記錄
iam4000 重新編輯於 2009-02-16 16:35:00, 註解 無‧
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
iam4000
一般會員 發表:12 回覆:5 積分:3 註冊:2008-11-27 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
iam4000
一般會員 發表:12 回覆:5 積分:3 註冊:2008-11-27 發送簡訊給我 |
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
說真的我也看不太懂你找點的方式 不過既然你可以找到點的話就可以記錄座標 紀錄座標完之後可以使試試看 [code cpp] #define Ilaft Form1->Image1->Left #define Itop Form1->Image1->Top Form1->Canvas->Pen->Width=1; Form1->Canvas->Pen->Color=clBlue; Form1->Canvas->MoveTo(Ilaft X,Itop Y); Form1->Canvas->LineTo(Ilaft X x,Itop Y y); [/code] 做運動估測時學到的......
------
恩...
編輯記錄
istillloving 重新編輯於 2009-02-18 00:02:03, 註解 無‧
istillloving 重新編輯於 2009-02-18 00:02:43, 註解 無‧ istillloving 重新編輯於 2009-02-18 00:03:15, 註解 無‧ istillloving 重新編輯於 2009-02-18 00:04:20, 註解 無‧ istillloving 重新編輯於 2009-02-18 00:06:27, 註解 無‧ |
iam4000
一般會員 發表:12 回覆:5 積分:3 註冊:2008-11-27 發送簡訊給我 |
你好,istillloving
我已經可以找到四個頂點了 現在就只差連線了 可是我不懂#define Ilaft Form1->Image1->Left 代表什麼意思 可以請你解釋一下嗎 謝謝 #define Itop Form1->Image1->Top 以下是我目前的程式 [code cpp] void __fastcall TForm1::PointConnect1Click(TObject *Sender) { Byte *ptr1, *ptr2, *ptr3, *ptr4; Graphics::TBitmap *TheBitmap; int find; TheBitmap=Image1->Picture->Bitmap; //左上角的頂點 find=0; for(int x=0; x < TheBitmap->Width; x ) { for(int y=0; y < TheBitmap->Height/2; y ) { ptr1=(Byte*)TheBitmap->ScanLine[y]; if(find==0 && ptr1[x]==255) { Image1->Canvas->Pixels[x][y]=clRed; find=1; } } } //左下角的頂點 find=0; for(int x=0; x < TheBitmap->Width; x ) { for(int y=0; y < TheBitmap->Height; y ) { ptr2=(Byte*)TheBitmap->ScanLine[y]; if(find==0 && ptr2[x]==255) { Image1->Canvas->Pixels[x][y]=clRed; find=1; } } } //右上角的頂點 find=0; for(int x=TheBitmap->Width-1; x > 0; x--) { for(int y=0; y < TheBitmap->Height/2; y ) { ptr3=(Byte*)TheBitmap->ScanLine[y]; if(find==0 && ptr3[x]==255) { Image1->Canvas->Pixels[x][y]=clRed; find=1; } } } //右下角的頂點 find=0; for(int x=TheBitmap->Width-1; x > 0; x--) { for(int y=0; y < TheBitmap->Height; y ) { ptr4=(Byte*)TheBitmap->ScanLine[y]; if(find==0 && ptr4[x]==255) { Image1->Canvas->Pixels[x][y]=clRed; find=1; } } } }[/code] ===================引 用 istillloving 文 章=================== 說真的我也看不太懂你找點的方式 不過既然你可以找到點的話就可以記錄座標 紀錄座標完之後可以使試試看 [code cpp] #define Ilaft Form1->Image1->Left #define Itop Form1->Image1->Top Form1->Canvas->Pen->Width=1; Form1->Canvas->Pen->Color=clBlue; Form1->Canvas->MoveTo(Ilaft X,Itop Y); Form1->Canvas->LineTo(Ilaft X x,Itop Y y); [/code] 做運動估測時學到的...... |
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
#define Ilaft Form1->Image1->Left //假設你是把圖秀在Image1 那你必須要知道Image1的左邊起始點和頂端起始點 #define Itop Form1->Image1->Top//這樣你要畫線的時候才能知道要從哪裡開始畫起 Form1->Canvas->Pen->Width=1; //指定畫筆寬度 Form1->Canvas->Pen->Color=clBlue; // 指定畫筆顏色 Form1->Canvas->MoveTo(Ilaft X,Itop Y);// 這就是所謂的Image1上的(X,Y)座標 把畫筆移到(X,Y)座標上Form1->Canvas->LineTo(Ilaft X x,Itop Y y);//然後畫至Image1上的(X x,Y y)這一點 而且我看你的程式好像沒有紀錄這四的點的資訊 這樣你程式跑完的時候就找不到這些資訊了 所以我建議你用一個4*4的int矩陣來存這些資料 你可以設一個fleg或者是把他寫死 都可以達成你要的目的 [code cpp] #define Ilaft Form1->Image1->Left //假設你是把圖秀在Image1 那你必須要知道Image1的左邊起始點和頂端起始點 #define Itop Form1->Image1->Top//這樣你要畫線的時候才能知道要從哪裡開始畫起 Form1->Canvas->Pen->Width=1; //指定畫筆寬度 Form1->Canvas->Pen->Color=clBlue; // 指定畫筆顏色 Form1->Canvas->MoveTo(Ilaft X,Itop Y);// 這就是所謂的Image1上的(X,Y)座標 把畫筆移到(X,Y)座標 Form1->Canvas->LineTo(Ilaft X x,Itop Y y);//然後畫至Image1上的(X x,Y y)這一點 [/code]
------
恩...
編輯記錄
istillloving 重新編輯於 2009-02-18 08:00:31, 註解 無‧
istillloving 重新編輯於 2009-02-18 08:00:59, 註解 無‧ istillloving 重新編輯於 2009-02-18 08:01:19, 註解 無‧ istillloving 重新編輯於 2009-02-18 08:01:42, 註解 無‧ istillloving 重新編輯於 2009-02-18 08:02:35, 註解 無‧ istillloving 重新編輯於 2009-02-18 08:04:33, 註解 無‧ istillloving 重新編輯於 2009-02-18 08:10:40, 註解 無‧ istillloving 重新編輯於 2009-02-18 08:11:55, 註解 無‧ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |