Duvida num metodo generico para Calculo de vertice de triangulo, quadrado, pentagono, hexagono

20/04/2014

0

public Triangulo(double x, double y, double raio, double rotacao, int tamanho) {
                super(x, y, raio, rotacao, tamanho, 3);
        }
public Quadrado(double x, double y, double raio, double rotacao, int tamanho) {
                super(x, y, raio, rotacao, tamanho, 4);
        }


Por ser um polígono regular (tem todos os seus lados e ângulos internos iguais), podemos perceber que o ângulo de rotação a aplicar (Angulo Teta) para obter o próximo vértice é calculado pela divisão da circunferência (360° = 2.PI) em partes iguais (o número de lados do polígono – nlp): Angulo Teta = 360°/nlp (Angulo Teta = 2PI/nlp).
No caso do hexágono temos: nlp = 6, logo Angulo Teta = 360°/6=60°(Angulo Teta = 2.PI / 6 = PI/3);
e no pentágono será nlp = 5, logo Angulo Teta = 360° / 5 = 72° (Angulo Teta = 2.PI / 5).

//Aqui neste metodo, onde coloco o (int tamanho), sendo
// centro(0,0);
// mRaio=0
//mRotacao=0
//mNLados=conforme tipo de poligono regular

public List<Ponto> getVertices() {
                ArrayList<Ponto> vertices = new ArrayList<>();
                double increment = 360.0 / mNLados;
                for (int i = 0; i < mNLados; ++i) {
                        vertices.add(new Ponto(Math.cos((mRotacao + increment * i) * Math.PI / 180) * mRaio + mCentro.getX(),
                                        Math.sin((mRotacao + increment * i) * Math.PI / 180) * mRaio + mCentro.getY()));
                }
                return vertices;
        }


Sandra Mirador

Sandra Mirador

Responder

Posts

20/04/2014

Sandra Mirador

Exemplo
int tamanho= 10; /*10 cm*/

Triangulo triangulo= new Triangulo(0,0,0,0, tamanho);
Quadrado quadrado= new Quadrado(0, 0, 0, 0, tamanho);

//De facto esse atributo tamanho, não faz nehum efeito no metodo getVertices() para  
//calculo de vertices dos poligonos regulares
//Aqui chamo os metodos getVertices

triangulo.getVertices ();                                                                              
quadrado.getVertices ();

System.out.println(triangulo.toString());
System.out.println(quadrado.toString());

//--- TRIANGLE ---
C->(0,00, 0,00)->(0,00, 0,00)->(0,00, 0,00);
//--- QUADRADO---
C->(0,00, 0,00)->(0,00, 0,00)->(0,00, 0,00)->(0,00, 0,00);

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar