Classe reta


/*SegmentoDeReta
Este seria mais um papel (ou classe) do programa gráfico. Sabe-se que dois pontos no plano definem um
?pedaço? ou segmento de uma reta; assim, pode-se dizer que um SegmentoDeReta tem as seguintes
características (atributos private): Ponto p1, Ponto p2 (ambos referências a objetos da classe Ponto) e cor
(uma cadeia de caracteres).
Um SegmentoDeReta precisa dos seguintes métodos:
a) Método construtor: para inicializar todos os atributos;
b) Métodos modificadores: um para alterar as posições dos pontos no espaço e outro para alterar
sua cor;
c) Métodos de acesso: que retornam os valores dos atributos (de modo que os atributos, possam ser
lidos por outros objetos);
*/


    public class SegmentoDeReta {
   
   
      private Ponto p1 ;
      private Ponto p2 ;
   
      private Ponto cor ;
   
   
       public SegmentoDeReta ( Ponto p1 , Ponto p2 , Ponto cor  ){
         this.p1 = p1;
         this.p2 = p2;
         this.cor =  cor ;
      
      
      }
   
   
   
       public void setPosicao ( Ponto p1 , Ponto p2) {
         this.p1 = p1;
         this.p2 = p2;
      
      }
    
   
       public void setCor  ( Ponto cor ) {
         this.cor = cor;
      
      }
   
   
       public Ponto getPonto1 ( ){
         return p1;
      
      }
     
       public Ponto getPonto2 ( ){
         return p2;
      
      }
      
       public Ponto getCor (){
         return cor ;
      }
   
   /*
   d) Um método chamado tamanho( ), que não recebe parâmetros e retorna a distância
    entre os pontos p1 e p2 (um número real).
   DICA:
   ? Para calcular o tamanho do SegmentoDeReta, calcular a distância entre os pontos p1 e p2.
   */
   
       public double  tamanho (){
         return p1.distanciaOutraForma(p2);
      
      }
      
      
   /*a) public void rotacaoAoRedorDaOrigem (double anguloDeRotacao) - calcula e retorna a rotação do
   Ponto ao redor da origem do Sistema de Coordenadas, para determinado valor do anguloDeRotacao (em
   radianos). A rotação somente pode ser calculada, se o valor de radianos estiver entre 0 (zero) e 2.
   novaCoordenadaX = coordenadaX . cosseno (valor em radianos) - coordenadaY . seno (valor em radianos)
   novaCoordenadaY = coordenadaY . cosseno (valor em radianos) + coordenadaX . seno (valor em radianos)
   DICAS:
   ? Calcular o seno de x (em radianos) em Java é fácil: seno = Math.sin(x);
   ? Calcular o cosseno de x (em radianos) em Java é fácil: cosseno = Math.cos(x);
   ? Calcular o valor de PI em Java é fácil: PI = Math.PI
   
   */
   
   
       public  void rotacaoAoRedorDaOrigem (double anguloDeRotacao){
         
         double rad= Math.toRadians(anguloDeRotacao);
         if ( rad > 0  && rad <= 180 ){
         
            System.out.println ( "nova CoordenadaX = " +( p1.getCoordenadaX()* Math.cos(rad)- p1.getCoordenadaY()*Math.sin(rad) ));
            System.out.println ( "nova CoordenadaY = " +( p1.getCoordenadaY()* Math.cos(rad)- p1.getCoordenadaX()*Math.sin(rad) ));
         }
         
         else {
         
            System.out.println (" Insira um angulo de rotação menor ");
         }
      
      
      }   
   
   
   
   
   
   
   
   
   
   
   }

*a) public void rotacaoAoRedorDaOrigem (double anguloDeRotacao) = minha duvida esta nesse metodo
esta certo isso ?

Na coordenada x você deveria somar, ao invés de subtrair. Pelo menos, é que diz o seu comentário.