swing 两点之间直线上的任意距离点的坐标
2009-12-31 15:11
549 查看
/** * 通过坐标上的两个点得一个路径点组 * @param p1 * @param p2 * @return */ public static List<Point> parsePath(Point p1,Point p2,int size){ List<Point> list=new ArrayList<Point>(); int x1=p1.x,y1=p1.y,x2=p2.x,y2=p2.y; double l=Math.sqrt(Math.pow(x2-x1, 2)+Math.pow(y2-y1, 2)); //距离 if(l==0){ for(int i=0;i<size-2;i++){ list.add(p1); } return list; } double t1=x2-x1; double t2=y2-y1; double a=Math.atan(t1/t2); if(x2-x1>0 && y2-y1>0){ System.out.println("一象限"); }else if(x2-x1<0 && y2-y1>0){ System.out.println("二象限"); }else if(x2-x1<0 && y2-y1<0){ System.out.println("三象限"); a=Math.PI+a; }else if(x2-x1>0 && y2-y1<0){ System.out.println("四象限"); a=Math.PI+a; }else if(y2==y1 && x2>x1){ System.out.println("正常水平线"); }else if(y2==y1 && x2<x1){ a=Math.PI+Math.PI/2; System.out.println("反正常水平线"); }else if(x1==x2 && y2>y1){ System.out.println("正常垂直线"); }else if(x1==x2 && y2<y1){ a=Math.PI; System.out.println("反正常垂直线"); } //计算得到一个 double splitLen=l/size; double x=0,y=0; //int size=(int)(l/splitLen); //list.add(p1); int len=0; for(int i=0;i<size;i++){ // if(i==0 || i>=size-1){ // continue; // } len+=splitLen; x=x1+len*Math.sin(a); y=y1+len*Math.cos(a); list.add(new Point((int)x,(int)y)); } //list.add(p2); System.out.println("点数:"+((l/splitLen)+2)); return list; }
以上代码都是自己理解的。不知道有没有理解错误。实际运行结果是没有错的。。更新了前几天的文章的错误
数学知识
arctan((Xb-Xa)/(Yb-Ya)),方位角求算公式
Xp=Xa+AP*sin(α),α-A的意思是AP的方位角
Yp=Ya+AP*cos(α)
http://bbs6.zhulong.com/forum/detail6618591_1.html
相关文章推荐
- 最短路径问题平面上有n个点(n<=100),每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。
- 利用php 计算两点地理经纬坐标之间的距离
- 已知用经纬度表示的两点,求两点之间的直线距离
- 已知两点坐标,求直线方程、距离其中一点距离为L的某点
- 火星坐标与地球坐标的转换,以及地球上两点之间的距离计算
- hdu 2376(求树上任意两点之间距离之和的平均值)
- Python-类03(求两点之间直线距离)
- 设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
- 【任务3】设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
- 根据任意两点地图坐标算出距离是多少
- 问题一百三十七:计算坐标上两点之间的距离
- java 根据经纬度 坐标 计算两点之间的距离
- 已知A,B两点及C点(不在直线AB上)坐标,求在直线AB上距离A点距离为线段AC长度的点D坐标
- 通过gps给定的两个经纬度坐标,计算两点之间的距离
- 求两点之间的直线距离
- 问题一百三十七:计算坐标上两点之间的距离
- 用FLOYD算法求特殊图的任意两点之间的距离
- C#实现根据地图上的两点坐标,计算直线距离
- HDU2586(LCA应用:在带权树中求任意两点之间的距离)
- 根据地图上的两个点各自的x,y坐标,计算出2点之间的直线距离。显示为公里、米