早教吧作业答案频道 -->英语-->
答对追加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分~道格拉斯-普...的网友还看了以下:
双曲线标准方程里怎么找b^2?比如x^2-y^2/4=1是找正的是b^2,还是找大的是b^2,还是 2020-05-13 …
CAD中怎么在直线里找距直线右侧一个定值的点?在一条32厘米的直线上找出距直线右端点15厘米的点. 2020-06-13 …
找出划线词语中使用错误的一个,写在横线上,并换一个意思相近的正确的词语。万顷大山经过大自然亿万斯年 2020-06-17 …
找渐近线(极限,导数这部分)关于一个方程怎么从方程本身来找渐进线呢?学极限,导数这部分碰到的,大概 2020-06-20 …
找出划线词语中使用错误的一个,写在横线上,并换一个意思相近的正确的词语。万顷大山经过大自然亿万斯年 2020-06-21 …
为什么线圈.越接近90度角.交流电就越大.为什么线圈.越接近90度角.交流电就越大.(.两边都垂直 2020-07-26 …
弧线距离大于直线距离但在地球上呢我要判断两点怎样走最近是不是要满足同经度找大圆才最近哦 2020-07-30 …
立体几何中怎样找辅助线?从哪里入手?怎样找辅助线比较简单呢?有时候,一个辅助线想不出来,全盘皆输啊 2020-08-01 …
地理上如何找日界线如何在如在图上找到日界线。步骤越详细越好!好的话多给你加分! 2020-12-05 …
填成语帮忙解决一下@bendan2010666(妎妎)1.我上线了,你不在;你上线了,我却不在,这叫 2021-01-20 …