当前位置:首页 » 操作系统 » 道格拉斯普克算法

道格拉斯普克算法

发布时间: 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里面实现了。

热点内容
安卓网络编程怎么用 发布:2025-01-16 03:04:45 浏览:899
湖南it服务器怎么样 发布:2025-01-16 03:01:01 浏览:248
图中两种配置哪个好 发布:2025-01-16 02:59:28 浏览:582
如何解开密保密码 发布:2025-01-16 02:57:44 浏览:23
中国银行查询密码是什么 发布:2025-01-16 02:33:20 浏览:794
坚果pro录音文件夹 发布:2025-01-16 02:31:46 浏览:942
支付宝的登录密码忘记了如何改 发布:2025-01-16 02:30:30 浏览:224
解压作业泥 发布:2025-01-16 02:28:02 浏览:810
我的世界rpg服务器空岛 发布:2025-01-16 02:26:49 浏览:93
ps脚本函数 发布:2025-01-16 02:15:28 浏览:484