Advertisement
Guest User

Untitled

a guest
Nov 19th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.77 KB | None | 0 0
  1.   @Override
  2.     public double countShape(ArrayList<double[]> points) {
  3.         ArrayList<Point> pointsAL = new ArrayList<Point>();
  4.         ArrayList<Point> sortedAL = new ArrayList<Point>();
  5.         for (double[] p : points) {
  6.             Point temp = new Point(p[0], p[1], p[2]);
  7.             pointsAL.add(temp);
  8.         }
  9.         sortedAL = sortPoints(pointsAL);
  10.         return 0;
  11.  
  12.     }
  13.  
  14.     public ArrayList<Point> sortPoints(ArrayList<Point> points) {
  15.         Collections.sort(points,new Comparator<Point>() {
  16.             @Override
  17.             public int compare(Point p1, Point p2) {
  18.                 double alfaP1 = 0;
  19.                 double alfaP2 = 0;
  20.                 if (p1 == p2 || p1.equals(p2)) {
  21.                     return 0;
  22.                 }
  23.                 alfaP1 = countAlfa(p1);
  24.                 alfaP2 = countAlfa(p2);
  25.                 if(alfaP1 < alfaP2){
  26.                     return -1;
  27.                 }else if(alfaP1 > alfaP2){
  28.                     return 1;
  29.                 } else{
  30.                     if(p1.getX() < p2.getX()){
  31.                         return -1;
  32.                     }
  33.                     return 1;
  34.                 }
  35.             }
  36.            
  37.         });
  38.         return points;
  39.     }
  40.    
  41.     public double countAlfa(Point p){
  42.         double alfa = 0;
  43.         double d = Math.abs(p.getX()) + Math.abs(p.getZ());
  44.         if( p.getX() >= 0 && p.getZ() >= 0){
  45.             alfa = p.getZ() / d;
  46.         }else if( p.getX() < 0  && p.getZ() >= 0){
  47.             alfa = 2 - ( p.getZ() / d);
  48.         }else if( p.getX() < 0 && p.getZ() < 0 ){
  49.             alfa = 2 + ( Math.abs(p.getZ()) / d );
  50.         }else if( p.getX() >= 0 && p.getZ() < 0) {
  51.             alfa = 4 - ( Math.abs(p.getZ()) / d);
  52.         }
  53.         return alfa;
  54.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement