Codigos
//comenzamos con la variable angulo
//se agrega una matriz (vacia)
let time = 0;
let wave = [];
let slider;
function setup() {
createCanvas(600, 400);
slider = createSlider(1, 50, 5);
}
function draw() {
background(0);
//150 px para arriba y 200 para abajo
translate(150, 200);
let x = 0;
let y = 0;
//lo que se necesita es iniciar con x y y en 0
//se inicia un bucle
for (let i = 0; i < slider.value(); i++) {
// Descirpcion de las variables a utilizar en fourier
let prevx = x;
let prevy = y;
let n = i * 2 + 1;
//se crea el radio
//x sea igual al radio, multiplicado por el cos
//4 dividio por pi, n veces coseno
let radius = 75 * (4 / (n * PI));
x += radius * cos(n * time);
//el radio es multiplicado por el seno de el tiempo
y += radius * sin(n * time);
//este es el circulo
stroke(255, 100);
noFill();
//se espera el diametro y el radio a la mitad
ellipse(prevx, prevy, radius * 2);
//nuevamente se pone en color blanco
stroke(255);
//se dibuja la linea desde 0, 0 ax, y.
line(prevx, prevy, x, y);
//se crea un circulo mas pequeño
ellipse(x, y, 8);
}
//se va a guardar ese valor
wave.unshift(y);
//se traduce a 200px
translate(200, 0);
//para trazar una linea
line(x - 200, y, 0, wave[0]);
//el begin y el end sirven Para unir todos los componentes
//aqui se marcara el rastro
beginShape();
noFill();
//se deja x ya que no se usara
//i = 0, i es menor que la longitud de onda
for (let i = 0; i < wave.length; i++) {
//se dibuja un punto en i, en la ola y en el índice
vertex(i, wave[i]);
}
endShape();
time += 0.05;
//sentencia donde llega a la línea ya que se sumaran los puntos
//finalizando esto, se repetira el proceso
if (wave.length > 250) {
wave.pop();
}
}
Comentarios
Publicar un comentario