zoukankan      html  css  js  c++  java
  • Algs4-1.2.1编写一个Point2D的用例

     1.2.1编写一个Point2D的用例,从命令行接受一个整数N。在单位正方形中生成N个随机点,然后计算两点之间的最近距离。
    解:
    图片

    public class Test
    {
        public static void main(String[] args)
        {
            int N=Integer.parseInt(args[0]);
            //
            double x0=0.0;
            double x1=200.0;
            double y0=0.0;
            double y1=200.0;
            //
            StdDraw.setXscale(x0,x1);
            StdDraw.setYscale(y0,y1);
            StdDraw.setPenRadius(0.005);
            //generate points and draw point.
            Point2D[] pointArray=new Point2D[N];
            for(int i=0;i<N;i++)
            {
                Point2D p=new Point2D(StdRandom.uniform(x0,x1),StdRandom.uniform(y0,y1));
                pointArray[i]=p;
                pointArray[i].draw();
            }
            //
            if (N<2) return;
            if (N==2) {StdOut.printf("The two point is shortes.");return;}
            //find the shortest two point.
            Point2D p1=pointArray[0];
            Point2D p2=pointArray[0];
            double shortestDist=Math.sqrt(200*200+200*200)+1.0;
            double dist;
            for(int i=0;i<N;i++)
            {
                 for(int j=i+1;j<N;j++)
                {
                    dist=pointArray[i].distanceTo(pointArray[j]);
                    if (shortestDist>dist)
                    {
                        shortestDist=dist;
                        p1=pointArray[i];
                        p2=pointArray[j];
                    }//end if
                }//end for j
            }//end for i
           StdDraw.setPenColor(StdDraw.RED);
           p1.draw();
           p2.draw();
        }//end main
     }//end class Test

    附加说明:
    这个Point2D用的是:http://algs4.cs.princeton.edu/code/ 中的代码,同时将代码的第一行package edu.princeton.cs.algs4;有注释掉。
    另外在获取点间距时使用的是Point2D.distanceTo  而不是教材中的Point2D.distTo

  • 相关阅读:
    10大经典排序算法动图演示,看这篇就够了!
    SSM是什么框架?
    SSM框架面试题及答案整理
    SSM框架面试题及答案整理
    SpringMVC工作原理详解
    synchronized关键字的用法总结
    Java常用数据结构之Set之TreeSet
    jQuery学习笔记(简介,选择器)
    你自认为理解了JavaScript?
    JDK1.5新特性,基础类库篇,XML增强
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9848788.html
Copyright © 2011-2022 走看看