Advertisement
tegusta

PSP

Jan 16th, 2013
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.14 KB | None | 0 0
  1. //INTERFACE//
  2. public interface PSP {
  3.  
  4.     /**@return ritorna la coordinata x*/
  5.     double getX();
  6.    
  7.     /**@return ritorna la coordinata y*/
  8.     double getY();
  9.    
  10.     /**@return distanza del punto dall'origine*/
  11.     double dist();
  12.    
  13.     /**@return angolo compreso*/
  14.     double angolo();
  15.    
  16.     /**
  17.      * @param scalare reale dato per moltiplicare l'attuale distanza
  18.      * @return nuovo punto con stesso angolo e distanza moltiplicata
  19.      */
  20.     PSP puntoSc(float scalare);
  21.    
  22. }//PSP
  23.  
  24.  
  25. //IMPLEMENTED INTERFACE//
  26.  
  27. public class PSPImpl implements PSP {
  28.     private double x;
  29.     private double y;
  30.     /**
  31.      * costruttore completo
  32.      * @param x
  33.      * @param y
  34.      */
  35.     public PSPImpl(double x, double y){
  36.         this.x=x;
  37.         this.y=y;
  38.     }//PSPImpl
  39.    
  40.     /**
  41.      * costruttore di copia
  42.      * @param punto
  43.      */
  44.     public PSPImpl(PSP punto){
  45.         this(punto.getX(),punto.getY());
  46.     }//PSPImpl
  47.    
  48.     /**
  49.      * metodo di esemplare che ritorna la coordinata x
  50.      * @return x
  51.      */
  52.     public double getX(){
  53.         return x;
  54.     }//getX
  55.    
  56.     /**
  57.      * metodo di esemplare che ritorna la coordinata y
  58.      * @return y
  59.      */
  60.     public double getY(){
  61.         return y;
  62.     }//getY
  63.    
  64.     /**
  65.      * metodo di esemplare che ritorna la distanza dal punto all'origine
  66.      * @return distanza
  67.      */
  68.     public double dist(){
  69.         return Math.sqrt((Math.pow(x, 2)+Math.pow(y,2)));
  70.     }//dist
  71.    
  72.     /**
  73.      * metodo di esemplare che ritorna l'angolo compreso
  74.      * @return angolo compreso
  75.      */
  76.     public double angolo(){
  77.         double dist=dist();
  78.         if(dist==0)
  79.             return 0;
  80.         else{
  81.             double ang=Math.acos(x/dist);
  82.             if(y>0)
  83.                 return ang;
  84.             else
  85.                 return (Math.PI*2)-ang;
  86.         }//else  
  87.     }//angolo
  88.    
  89.     /**
  90.      * metodo di esemplare che ritorna un nuovo punto
  91.      * @param scalare
  92.      * @return nuovo punto
  93.      */
  94.     public PSP PuntoSc(float scalare){
  95.         return new PSPImpl(scalare*getX(),scalare*getY());
  96.     }//PuntoSc
  97.    
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement