sexta-feira, 20 de junho de 2008

Rotação de quadrado no scilab

Um(a) leitor(a) do blog está com uma dúvida: como plotar quadrados em ângulos diferentes ao mesmo tempo no scilab, sendo cada quadrado de uma cor.

Primeiro passo: montar o quadrado original.
O quadrado será montado pelos seus vértices e o primeiro vértice deve estar na 1a e última posição para "fechar o quadrado".
x = [0 1 1 0 0];
y = [0 0 1 1 0];

Segundo passo: determinar quantos quadrados irão aparecer.
Lembrando que cada quadrado deve ser de uma cor, então deve-se conhecer tantas cores quanto seja a quantidade de quadrados.
N = 7;
cores = ["r" "g" "b" "c" "m" "y" "k"]; // cores r-vermelho, g-verde, b-azul, c-ciano, m-magenta, y-amarelo, k-preto
w = 2*%pi/N; // intervalo angular entre os quadrados 360º/7

Terceiro passo: definir a rotação do quadrado.
Quem estudou tranformações lineares, deve lembrar que a rotação de um ponto em torno da origem é obtida pela seguinte equação:

Quarto passo: gerar os gráficos.
Fazendo o código final (completo)
x = [0 1 1 0 0];
y = [0 0 1 1 0];

N = 7;
cores = ["r" "g" "b" "c" "m" "y" "k"];
w = 2*%pi/N;

for t = 1:N,
px = cos(w*t)*x + sin(w*t)*y;
py = sin(w*t)*x - cos(w*t)*y;
plot(px,py,cores(t));
end;

Resultado da simulação:

Espero ter ajudado.

Nenhum comentário: