當前位置:首頁 » 操作系統 » 道格拉斯普克演算法

道格拉斯普克演算法

發布時間: 2022-08-15 00:23:20

A. 急需道格拉斯-普克演算法的C#代碼,求大神給我

開源代碼下載
http://www.codeproject.com/Articles/18936/A-C-Implementation-of-Douglas-Peucker-Line-Approxi

B. 怎麼用棧的方法編寫道格拉斯-普克演算法啊

下面的代碼,用vector作了一個棧,避免了大數據遞歸時刻能出現的stack overflow問題;

用到的都是標準的C++ 及STL的東西,VC++下面沒有問題。

只是一個演示,很多保護和檢驗都沒有作;

輸入數據格式: x y -- 一行; 輸出: x0 y0 x1 y1 (x0, y0 - 原始數據;r1, y1-rdp後的數據,一般少於x0,y0的數據)

這只是【代碼片段】及輸出部分。完整的程序我發到『網盤』上了,提取見『私信』。

...
typedefstructPOINT
{
doublex;
doubley;
}Point;

typedefstructSTACKELEMENT
{
Pointpoint;
size_tindex;
}StackElement;
...
vector<StackElement>rdp_stack;
...
intrdp_fit(constvector<Point>&input,vector<Point>&output,doubleepsilon)
{
output.resize(0);

if(input.empty())return-1;

rdp_stack.resize(0);//clearbeforeusing.

//.
rdp_stack.reserve(input.size());
output.reserve(input.size());

//initialstart~endpointforrdp.
Pointstart=input.front();
size_tindex_start=0;
Pointend=input.back();
size_tindex_end=input.size()-1;

//addthefirstpoint
output.push_back(start);

StackElementstack_element={end,index_end};

rdp_stack.push_back(stack_element);

while(!rdp_stack.empty())
{
doublemax_perpendicular_distance=0.0;
Pointfarthest=start;
size_tindex_of_farthest=index_start;

//
for(size_ti=index_start+1;i<index_end;++i)
{
constdoubleperpendicular_distance=getDistanceToLine(input[i],start,end);
if(perpendicular_distance>max_perpendicular_distance)
{
...
}
}

if(max_perpendicular_distance<=epsilon)
{
...
}
else
{
...
}
}
return0;
}

intmain(intargc,charconst*argv[])
{
doubletolerance=0.02;//hard-codingepilson.<==modify
charinfile[]="rdp_data.in";//inputfile.<==modify
charoutfile[]="rdp_data.out";//outputfile.<==modify
vector<Point>raw_data,rdp_data;

loadData(infile,raw_data);
intretcode;
...
retcode=rdp_fit(raw_data,rdp_data,tolerance);
saveData(outfile,raw_data,rdp_data);
...
return0;
}

輸出:

.

圖:

C. 道格拉斯-普克演算法的介紹

道格拉斯-普克演算法1(Douglas–Peucker algorithm,亦稱為拉默-道格拉斯-普克演算法、迭代適應點演算法、分裂與合並演算法)是將曲線近似表示為一系列點,並減少點的數量的一種演算法。它的優點是具有平移和旋轉不變性,給定曲線與閾值後,抽樣結果一定。

D. 有沒有人能給我道格拉斯普克演算法VB源碼

http://download.csdn.net/download/ddddddadw/5924815 希望對你有用~~

E. AO+C# 道格拉斯演算法

聽不懂你說的。。我也想用AO+C#做道格拉斯演算法。但是現在還沒有開始,現在只是簡單的用VS2008,在pictureBox裡面實現了。

熱點內容
vb編程步驟 發布:2025-01-16 01:11:58 瀏覽:201
bb霜解壓 發布:2025-01-16 01:11:11 瀏覽:596
編程懟人 發布:2025-01-16 00:53:08 瀏覽:760
建立共享伺服器地址 發布:2025-01-16 00:26:40 瀏覽:565
android開機動畫修改 發布:2025-01-16 00:26:26 瀏覽:872
怎麼解壓pc版游戲 發布:2025-01-16 00:16:32 瀏覽:122
v9更新到91有方舟編譯器嗎 發布:2025-01-16 00:11:49 瀏覽:500
AB系統編程 發布:2025-01-16 00:09:37 瀏覽:621
存儲過程如何遍歷一個表的數據 發布:2025-01-16 00:08:34 瀏覽:875
apkso反編譯 發布:2025-01-15 23:53:20 瀏覽:6