// Responsável: Juliano Pastorelli Dutra - RA: 981449 package pckDesenho; import java.lang.Math; import pckPlano.*; import pckMapa.*; /** * Titulo: VerticeImpl * Descricao: Implementação da Classe Abstrata Vertice. * @author GRUPO-A * @version 0.1 * 981449 */ public class VerticeImpl extends Vertice { /** * Membro responsavel pelo modulo * Juliano Dutra: 981449 **/ private int coordenada_x; // Coordenada X private int coordenada_y; // Coordenada Y /** * Define o construtor da classe. * Entrada: Dois valores inteiros. * Saida: O objeto criado com os dois valores. * 981449 */ public VerticeImpl(int valor_de_x, int valor_de_y){ coordenada_x = valor_de_x; coordenada_y = valor_de_y; } /** * Define o construtor de um vertice sem parametros. * Entrada: Nada * Saida: Um vertive com coordenadas x=0 e y=0. * 981449 */ public VerticeImpl(){ coordenada_x = 0; coordenada_y = 0; } /** * Define o construtor da classe. * Entrada: Dois valores reais. * Saida: O vértice é criado com os dois valores reais * sendo arredondados para inteiros, assim evita o erro * nas chamadas deste tipo. * 981449 */ public VerticeImpl(float valor_de_x, float valor_de_y){ coordenada_x = (int)valor_de_x; coordenada_y = (int)valor_de_y; } /** * Muda o valor da coordenada x. * Entrada: O novo valor do atributo x. * Saida: O atributo x com o novo valor. * 981449 */ public void setX(int valor_de_x){ coordenada_x = valor_de_x; } /** * Muda o valor da coordenada y. * Entrada: O novo valor do atributo y. * Saida: O atributo y com o novo valor. * 981449 */ public void setY(int valor_de_y){ coordenada_y = valor_de_y; } /** * Muda simultaneamente os valores das coordenadas x e y. * Entrada: Os novos valores dos atributos x e y. * Saida: Os atributos x e y com os novos valores. * 981449 */ public void setXY(int valor_de_x, int valor_de_y){ coordenada_x = valor_de_x; coordenada_y = valor_de_y; } /** * Multiplica a coordenada x para * obter o efeito de zoom no eixo horizontal.. * Entrada: O multiplicador. Se for zoom in * o multiplicador deve ser maior que 1 e se * se for zoom out ele deve ser menor que 1 * e, ao mesmo tempo, maior que 0. * Saida: O novo valor da coordenada x * arredondado para o inteiro mais próximo.. * 981449 */ public void multiplicaX(float multiplicador){ float temp; temp = (float)coordenada_x; float novo_x; novo_x = (temp * multiplicador); coordenada_x = (int)novo_x; } /** * Multiplica a coordenada y para * obter o efeito de zoom no eixo vertical. * Entrada: O multiplicador. Se for zoom in * o multiplicador deve ser maior que 1 e se * se for zoom out ele deve ser menor que 1 * e, ao mesmo tempo, maior que 0. * Saida: O novo valor da coordenada y * arredondado para o inteiro mais próximo. * 981449 */ public void multiplicaY(float multiplicador){ float temp; temp = (float)coordenada_y; float novo_y; novo_y = (temp * multiplicador); coordenada_y = (int)novo_y; } /** * Multiplica as coordenadas x e y para * obter o efeito de zoom in e zoom out. * Entrada: O multiplicador. Se for zoom in * o multiplicador deve ser maior que 1 e se * se for zoom out ele deve ser menor que 1 * e, ao mesmo tempo, maoir que 0. * Saida: Os novos valores das coordenadas * x e y. * 981449 */ public void multiplicaCoordenada(float multiplicador){ multiplicaY(multiplicador); multiplicaX(multiplicador); } /** * Retorna o valor da coordenada x. * Entrada: Nada * Saida: O valor da coordenada x. * 981449 */ public int getX(){ return(coordenada_x); } /** * Retorna o valor da coordenada y. * Entrada: Nada * Saida: O valor da coordenada y. * 981449 */ public int getY(){ return(coordenada_y); } /** * Retorna o valor do vértice no formato de String.. * Entrada: Nada * Saida: uma string com o formato (X,Y). * 981449 */ public String paraString(){ String string_vertice; string_vertice = new String ("(" + coordenada_x + "," + coordenada_y + ")"); return string_vertice; } } // Fim da Classe VerticeImpl