全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1244
推到 Plurk!
推到 Facebook!

走路徑?要怎解

答題得分者是:s8131556
good321
一般會員


發表:6
回覆:6
積分:2
註冊:2006-11-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-24 18:06:47 IP:218.162.xxx.xxx 訂閱
關於走路徑這要怎麼解?
空白字元代表可以行走,'*'字元代表邊界或牆壁,不可以行走或跨越,其次's'字元代表起點,'e'字元代表終點,由s走到e
**************************************
s *

************* *
* *
* *
* ****************
* *
* * *
* * *
* * e
**************************************
然後再利用模擬退火法來找尋全域最小值,並標示出最後找到的最小值位置。



ikk
尊榮會員


發表:4
回覆:413
積分:768
註冊:2003-06-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-26 12:58:25 IP:163.28.xxx.xxx 訂閱
延著邊線走...
每次都延著前一次的邊線走..
------
FPGA驗證, FPGA開發平台, http://smims.com
s8131556
一般會員


發表:0
回覆:9
積分:16
註冊:2003-10-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-03-31 16:54:30 IP:59.126.xxx.xxx 訂閱
可以試試看Distance transform

http://en.wikipedia.org/wiki/Distance_transform

可以得到區域最大值,然後就跟著最大值去探索...
good321
一般會員


發表:6
回覆:6
積分:2
註冊:2006-11-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-03-31 21:19:30 IP:218.162.xxx.xxx 訂閱
請問兩位樓上的大大
要怎用用c/c 寫
s8131556
一般會員


發表:0
回覆:9
積分:16
註冊:2003-10-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-04-01 09:20:00 IP:59.126.xxx.xxx 訂閱
以下是距離轉換的做法,後續要怎樣找到路,就自己想囉
[code cpp]
//Min------------------------------------------------------------------------
int min(int a, int b)
{
if(a <= b)
return a;
else
return b;
}
//---------------------------------------------------------------------------
// 距離轉換
//---------------------------------------------------------------------------
void __fastcall TForm1::DT(TImage *SrcImage, TImage *TarImage)
{
Graphics::TBitmap *Bmp = new Graphics::TBitmap();
Byte *ptr;
Bmp->Assign(SrcImage->Picture->Bitmap);
Memo1->Text = "";
// 將圖片暫存至陣列中
for(int i=0;iHeight;i )
{
ptr=(Byte*)Bmp->ScanLine[i];
for(int j=0;jWidth; j )
{
if(ptr[j*3] <128)
p1[j][i]=0;
else
p1[j][i]=255;
}
}

int Distance[4], TD;
Distance[0]=5;
Distance[1]=7;
Distance[2]=5;
Distance[3]=7;

for(int i = 1; i < Bmp->Height-1; i )
{
for(int j = 1; j < Bmp->Width-1; j )
{
TD=min(min(min(p1[j-1][i-1] Distance[0],
p1[j][i-1] Distance[1]),
p1[j 1][i-1] Distance[2]),
p1[j-1][i] Distance[3]);
p1[j][i]=min(TD,p1[j][i]);
}
}
for(int i = Bmp->Height-2; i > 0; i--)
{
for(int j = Bmp->Width-2; j > 0 ; j--)
{
TD=min(min(min(p1[j 1][i 1] Distance[0],
p1[j][i 1] Distance[1]),
p1[j-1][i 1] Distance[2]),
p1[j 1][i] Distance[3]);
p1[j][i]=min(TD,p1[j][i]);
}
}

AnsiString result;
for(int i=0;iHeight;i )
{
result="";
ptr=(Byte*)Bmp->ScanLine[i];
for(int j=0;jWidth; j )
{
int x=p1[j][i];
x=(x > 255)?255:x;
ptr[j*3] = x;
ptr[j*3 1] = x;
ptr[j*3 2] = x;
result = result IntToHex(x, 2) " ";
}
Memo1->Lines->Add(result);
}
TarImage->Picture->Assign(Bmp);
delete Bmp;
}
[/code]
編輯記錄
s8131556 重新編輯於 2009-04-01 09:23:47, 註解 無‧
good321
一般會員


發表:6
回覆:6
積分:2
註冊:2006-11-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-04-02 12:22:20 IP:163.17.xxx.xxx 訂閱
謝謝大大的幫忙.....
編輯記錄
good321 重新編輯於 2009-04-02 12:22:59, 註解 無‧
系統時間:2024-04-23 23:09:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!