Exercício 17 - Polígono regular

Neste exercício irei criar uma aplicação que desenha um polígono regular centralizado na tela com a quantidade de lados informada no próprio código.
Bom, como fiz este exercício na Aula 19 de Matemática aplicada á Multimídia I então irei coloca-lo da maneira que aprendi nessa aula, utilizando coordenadas polares e a transformando coordenada cartesiana.
Para isso criei algumas variáveis que são:
·         angulo: necessária para saber qual angulo cada "triangulo" do polígono terá
·         lados: o número de lados que o polígono terá
·         pos(vetor): posição x e y atual;
·         aux(vetor): posição x e y anterior;

       
Primeiro criei uma função pra transformar coordenadas polares em cartesianas, explicada em sala de aula, basta ter o angulo e o raio, então a posição x será r*(cos(ang)) e o y será r*(sin(ang)), como mostra na figura abaixo:

Depois, foi necessário criar uma repetição que irá pegar a variável i(de 0 até o n° de lados), e multiplica-la pelo angulo, assim teremos o valor x e y atual, mas antes será necessário armazenar o x e y anteriores em outro vetor, por isso foi criado o vetor aux, então será criada uma line nas posições (aux[0],aux[1],pos[0],pos[1]).

Código completo:


float angulo;
int lados=6;
float[] pos = new float[2];
float[] aux = new float[2]; 

void setup(){
 size(600,600); 
 angulo = (PI*2)/lados;
 translate(width/2,height/2);
 
 pos = polar_cartesiano(angulo,200);
 
 for(int i = 0;i<=lados;i++){
   aux = pos;   
   pos = polar_cartesiano(angulo*i,200);
   line(aux[0],aux[1],pos[0],pos[1]);
 } 
 textSize(30);
 if(lados>1){
  text("Numero de lados do polígono: "+lados,30,30);
}else{
  text("Numero de lados do polígono: 0",30,30);
}
} float[] polar_cartesiano(float ang, float r){   float[] posL = new float[2];     posL[0] = r*(cos(ang));     posL[1] = r*(sin(ang));     return posL; }

Programa feito com processing.js com algumas modificações utilizando HTML para ficar mais dinâmico:

Insira o N° de lados do polígono:





Comentários

Postagens mais visitadas deste blog

Exercício 6 - Bandeira do Brasil

Exercício 10 - Jogo do Pong

Execício 8 - Sensor de distância