有內外輪廓點資料,如何將點資料畫成圖形 |
尚未結案
|
breyd
一般會員 發表:11 回覆:10 積分:4 註冊:2003-05-29 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
breyd您好:
引言: 我有圖形內外輪廓點資料,如何將點資料畫成圖形,顯示在Image1元件上, 並且存成BMP檔。不知有沒有範例可提供小弟參考。因為不曉得您的外輪廓點資料的形式與內容,所以我以下面的範例做說明 以在Image上逐點描繪出圓形為例 int x=50,y=50,a=10; for(int i=1;i<=360;i ) { int X1=x a*cos(M_PI*i/180); int Y1=y a*sin(M_PI*i/180); Image1->Canvas->Pixels[X1][Y1]=clRed; } Image1->Picture->SaveToFile("我要的圖檔.bmp");順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> 發表人 - |
breyd
一般會員 發表:11 回覆:10 積分:4 註冊:2003-05-29 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
breyd您好:
其實原理是一樣的,您要打點到Image上的話
用
Image1->Canvas->Pixels[x][y]=clRed;即可在Image上打上顏色,不過由您的資料看來,影像似乎很大張 建議您可以用下面方式 Image1->Stretch=true; Graphics::TBitmap *BMP=new Graphics::TBitmap(); BMP->Canvas->Pixels[x][y]=clRed; ... Image1->Assign(BMP); delete BMP;這樣畫面就不會太大了 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> |
breyd
一般會員 發表:11 回覆:10 積分:4 註冊:2003-05-29 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
breyd
一般會員 發表:11 回覆:10 積分:4 註冊:2003-05-29 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
breyd您好:
您誤會我的意思了,我只是要知道您的*.TXT檔案格式為何
並告訴您該如何進行(ex.範例),我並不是要幫您寫出完整程式的
下面是範例程式碼您參考看看
< class="code">
//畫一個圓,並將座標存入data.txt
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TStringList*data =new TStringList();
int x=50,y=50,a=10;
for(int i=1;i<=360;i )
{
int X1=x a*cos(M_PI*i/180);
int Y1=y a*sin(M_PI*i/180);
data->Add(X1);
data->Add(Y1);
Image1->Canvas->Pixels[X1][Y1]=clRed;
}
Image1->Picture->SaveToFile("我要的圖檔.bmp");
data->SaveToFile("data.txt");
delete data;
}
//---------------------------------------------------------------------------
//讀取data.txt並畫出圖形
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TStringList* data=new TStringList();
data->LoadFromFile("data.txt");
for (int i=0;i
|
breyd
一般會員 發表:11 回覆:10 積分:4 註冊:2003-05-29 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
breyd您好:
請參考下面的程式,將您的文字檔X與Y座標值取出
您文字檔內容如下圖所示
以PD為開頭PU為結尾當作一封閉輪廓座標資料
利用下面code將X與Y取出
TStringList *Source=new TStringList(); TStringList *Data1=new TStringList(); TStringList *Data2=new TStringList(); Source->LoadFromFile("1.txt"); for(int i=0; i接下來您必需將位置映射到Image上[左上角為原點(0,0)] 這部分就交給您了 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> 發表人 - |
breyd
一般會員 發表:11 回覆:10 積分:4 註冊:2003-05-29 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
breyd
一般會員 發表:11 回覆:10 積分:4 註冊:2003-05-29 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |