早教吧作业答案频道 -->英语-->
答对追加80分~道格拉斯-普克与matlab所谓道格拉斯,即对每一条曲线的首末两点虚连一条直线,求其间所有点到直线的距离,并找到最大距离值dmax,用dmax与限差D相比:若dmax<D,这条曲线上的中间
题目详情
答对追加80分~道格拉斯-普克与matlab
所谓道格拉斯,即对每一条曲线的首末两点虚连一条直线,求其间所有点到直线的距离,并找到最大距离值dmax,用dmax与限差D相比:若dmax<D,这条曲线上的中间点全部舍去;若dmax≥D,保留dmax对应的坐标点,并以该点为界,把曲线分为两部分,对这两部分重复使用这种方法.目的是为了压缩数据.
请问怎么编写matlab程序实现?我的数据是等高线上的点~十分急.今天之内要~
所谓道格拉斯,即对每一条曲线的首末两点虚连一条直线,求其间所有点到直线的距离,并找到最大距离值dmax,用dmax与限差D相比:若dmax<D,这条曲线上的中间点全部舍去;若dmax≥D,保留dmax对应的坐标点,并以该点为界,把曲线分为两部分,对这两部分重复使用这种方法.目的是为了压缩数据.
请问怎么编写matlab程序实现?我的数据是等高线上的点~十分急.今天之内要~
▼优质解答
答案和解析
function DouglasPeucker(PointList[], epsilon)
//Find the point with the maximum distance
dmax = 0
index = 0
for i = 2 to (length(PointList) - 1)
d = PerpendicularDistance(PointList[i], Line(PointList[1], PointList[end]))
if d > dmax
index = i
dmax = d
end
end
//If max distance is greater than epsilon, recursively simplify
if dmax >= epsilon
//Recursive call
recResults1[] = DouglasPeucker(PointList[1...index], epsilon)
recResults2[] = DouglasPeucker(PointList[index...end], epsilon)
// Build the result list
ResultList[] = {recResults1[1...end-1] recResults2[1...end]}
else
ResultList[] = {PointList[1], PointList[end]}
end
//Return the result
return ResultList[]
end
//Find the point with the maximum distance
dmax = 0
index = 0
for i = 2 to (length(PointList) - 1)
d = PerpendicularDistance(PointList[i], Line(PointList[1], PointList[end]))
if d > dmax
index = i
dmax = d
end
end
//If max distance is greater than epsilon, recursively simplify
if dmax >= epsilon
//Recursive call
recResults1[] = DouglasPeucker(PointList[1...index], epsilon)
recResults2[] = DouglasPeucker(PointList[index...end], epsilon)
// Build the result list
ResultList[] = {recResults1[1...end-1] recResults2[1...end]}
else
ResultList[] = {PointList[1], PointList[end]}
end
//Return the result
return ResultList[]
end
看了 答对追加80分~道格拉斯-普...的网友还看了以下:
求助2014年辽宁省大连市中考数学卷压轴题第26题,如图,抛物线y=a(x-m)²(其中m>1)如 2020-05-15 …
帮忙解决一道高数题设f(x)具有二阶连续导数,f(0)=0,f'(0)=0,f''(x)>0.在曲 2020-05-16 …
当x=0时怎么确定∫(积分上限为x积分下线为0)f(t)dt的定义域中包括x=0设f(x)是奇函数 2020-06-26 …
a为何值时,抛物线y^2=x+a和x^2=y+a有四个交点?证明当这两条抛物线有四个交点时,这四个 2020-07-21 …
连通集的问题连通集:若点集E内的任意两个点,都可用折线连接起来,且该折线上的点都属于,则称为连通集 2020-07-30 …
已知a∈R,函数f(x)=ae^x是定义在R上的单调递增函数,且曲线y=f(x)与坐标轴的交点为A 2020-07-31 …
高数题函数已知f(x)是周期为5的连续函数,它在x=0的某个邻域满足f(1+sinx)-3f(1- 2020-07-31 …
如何求两个圆的交点求圆心在直线l:x+y=0上,且过两圆C1:x^2+y^2-2x+10y-24=0 2020-10-31 …
连线题连线题将下列居民与其所在的国家(地区)及民风民俗用线连接起来:①亚库特人A.印度尼西亚a.居住 2020-12-11 …
19.设f(x)的导数在x=a处连续,又limf(x)/(x-a)=1(x->a),则A.x=a19 2020-12-31 …