我在比较数组中的值并绘制一条线到具有最大距离的点时遇到问题。

   Point2D[] pts = new Point2D[N];
        for (int i = 0; i < pts.length; i++){
            pts[i] = new Point2D(Math.random(), Math.random());
            StdDraw.setPenColor(StdDraw.RED);
            StdDraw.setPenRadius(0.008);
            pts[i].draw();
            if(SOMETHING){
                StdDraw.setPenColor(StdDraw.BLACK);
                StdDraw.setPenRadius(0.002);
                pts[i].drawTo(SOMETHING);


到目前为止,这是我生成随机点的代码的一部分,但是我不知道如何测量距离然后绘制。
我必须创建一个嵌套循环吗?
任何建议都很好!

最佳答案

如果只想绘制最长的边(图形理论术语),则绘制调用可能不会在for循环内。相反,您的循环(可能还有第二个嵌套循环)将遍历所有可能性,并通过保存和覆盖迄今为止每次发现的最长的数据,来首先找到最长的边,直到每次打破前一个记录,然后在循环后开始绘制一次。

09-04 23:51