2014-04-10 40 views
1

我有一個問題,比較一個數組中的值,並繪製一條線到距離最遠的點。比較陣列中的距離

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); 

到目前爲止,這是我的代碼,生成隨機點的一部分,但我不知道如何處理測量距離,然後繪製它。 我需要創建一個嵌套循環嗎? 任何建議將是偉大的!

+0

您是先創建所有點還是要爲每個創建的點繪製一條線(在彼此距離最遠的兩個點之間)? – Ennosigaeon

+0

先生成點,然後找到最長距離 – user3395013

+0

然後,您必須先使用for循環先創建所有點,然後再使用嵌套for循環。在遍歷數組的同時存儲最長距離和兩個點 – Ennosigaeon

回答

2

它是可能的,如果你只是想畫的最長邊緣(圖論的術語),您的繪圖調用不會是你在for循環中。相反,您的循環(可能還有第二個嵌套循環)將貫穿您的所有可能性,並首先找到最長的邊,通過保存和覆蓋數據到每次打破先前最長時間內發現的數據記錄,然後在循環之後開始繪製一次。

+0

謝謝!開悟嘗試一些激烈的事情! – user3395013