道格拉斯算法java_道格拉斯-普克算法的java的实现代码如下

道格拉斯算法java_道格拉斯-普克算法的java的实现代码如下展开全部
packagecom.mapbar.jts;
/***ClassPoint.java*/
publicclassPoint
{
/***点的X坐标*/privatedoublex=0;
/***点的Y坐标*/privatedoubley=0;
/***点所属的曲线的索引*/privateintindex=0;
publicdoublegetX() {returnx;}
现代科技成就publicvoidsetX(doublex) {this.x=x;}
publicdoublegetY() {returny;}
publicvoidsetY(doubley) {this.y=y;}
publicintgetIndex() {returnindex;}
publicvoidsetIndex(intindex) {this.index=index;}
/***点数据的构造e69da5e887aa3231313335323631343130323136353331333361303563⽅法**
@paramx*点的X坐标*@paramy*点的Y坐标*@paramindex点所属的曲线的索引*/
publicPoint(doublex,doubley,intindex)
{this.x=x;this.y=y;this.index=index;}
}
packagecom.mapbar.jts;
importjava.util.ArrayList;
importjava.util.List;
importcom.Coordinate;
importcom.Geometry;
importcom.vividsolutions.jts.io.ParseException;
importcom.vividsolutions.jts.io.WKTReader;
2013浙江理综
/***ClassDouglas.java*/
publicclassDouglas
{
/***存储采样点数据的链表*/
publicListpoints=newArrayList();
/***控制数据压缩精度的极差*/
privatestaticfinaldoubleD=1;
privateWKTReaderreader;
/***构造Geometry**@paramstr*@return*/
publicGeometrybuildGeo(Stringstr)
{
try
{
if(reader==null) {reader=newWKTReader();}
}
catch(ParseExceptione) {thrownewRuntimeException(buildGeometryError,e);}
脊椎病因学}
/
张希骞
***读取采样点*/
publicvoidreadPoint()
{
Geometryg=buildGeo(LINESTRING(14,23,42,66,77,86,95,1010));
Coordinate[]Coordinates();
for(inti = 0;i < coords.length; i++)
{Pointp=newPoint(coords[i].x,coords[i].y,i);points.add(p);}
}
/***对⽮量曲线进⾏压缩**@paramfrom*曲线的起始点*@paramto*曲线的终⽌点*/
publicvoidcompress(Pointfrom,Pointto)
{
/
***压缩算法的开关量*/booleanswitchvalue=false;
/***由起始点和终⽌点构成的直线⽅程⼀般式的系数*/
System.out.Y());
System.out.Y());
doubleA=(Y()-to.getY())/Math.sqrt(Math.pow((Y()-to.getY()),2)+Math.pow((X()-to.getX()),2)); /***由起始点和终⽌点构成的直线⽅程⼀般式的系数*/
doubleB=(to.getX()-X())/Math.sqrt(Math.pow((Y()-to.getY()),2)+Math.pow((X()-to.getX()),2));
/***由起始点和终⽌点构成的直线⽅程⼀般式的系数*/doubleC=(X()*to.getY()-
doubled=0;
doubledmax=0;
intm=points.indexOf(from);
intn=points.indexOf(to);
if(n == m+1) return;
Pointmiddle=null;
Listdistance=newArrayList();
for(inti = m+1;i < n;++)
{
d=Math.abs(A*((i).getX())+B*((i).getY())+C)/Math.sqrt(Math.pow(A,2)+Math.pow(B,2)); distance.add(d);
}
(0);
for(intj = 1;j < distance.size();j++)
{
(j) > dmax) (j);
}
if(dmax>D) switchvalue=true;
else switchvalue=false;
if(!switchvalue)
{
//删除Points(m,n)内的坐标
for(inti = m+1;i < n;i++)
<(i).setIndex(-1);
远期现货
}
else
{
for(inti = m+1;i < n;i++)
{
if((Math.abs(A*((i).getX())+B*((i).getY())+C)/Math.sqrt(Math.pow(A,2)+Math.pow(B,2))==dmax)) (i);
}
compress(from,middle);淮北师范大学学报
compress(middle,to);
}
}
publicstaticvoidmain(String[]args)
{
Douglasd=newDouglas();
dpress((0),(d.points.size()-1)); for(inti = 0;i < d.points.size();i++)
{
Pointp=(i);
Index()>-1){System.out.X()++p.getY()+,);}} }
}

本文发布于:2024-09-21 16:47:26,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/649738.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:曲线   采样   数据   实现   般式   直线
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议