Descripción del funcionamiento de código.
Simple Harmonic Motion
let angle=0;// se declara la variable angulo
let angleV = 0;//se declara la variable anguloV
//Funcion la cual su funcionalidad es determinar el espacio
//en el cual se graficara con scripts
function setup(){
createCanvas(400, 400,);
}
//Funcion la cual debera realizar los dibujos
function draw(){
background(0,10);
translate(200,200);// aca se permite hacer que la figura se traslade entre los
limites colocados
fil(252,238,33);//cambia todos los elementoa a un arreglo por valores estaticos
determinados ya en la funcion
//let r= map(sin(angle), -1, 1, 0, 200);
let y= map(sin(angle), -1, 1, -200, 200);// se declara una nueva variable la cual
se le asigna un valor en forma de arreglo el cual se calcula con los parametros
declarados
stroke(255);//Se establece el color de las figras dibujadas
line(0, 0,0,y); //Se encarga de dibujar una linea en el eje y
circle(0, y, 32);//Se crea un circulo con los parametros asignados
//let increment=TWO_PI /60;
angle +=angleV;// Se ira incrementando el angulo
angleV +=0.0001;//la velocidad con la que se ira incrementando el angulo
//console.log(frameRate());
}
Fourier Series
//Se declaran variables globales
let time = 0;
let wave = [];
let slider;
//Funcion la cual permite dibujar el campo en el cual se graficara y tambien se crea
el slider para definir los parametros del periodo
function setup() {
createCanvas(600, 400);
slider = createSlider(1, 10, 5);
}
/**
Funcion la cual permite dibujar las circunferencias y las ondas conforme se aplica la
formula respectiva, la cual va tomando los valores a evaluar
deacuerdo al slider ya que dependiendo del valor del slider se asignaran los demas
valores a las variables necesarias.
**/
function draw() {
background(0);
translate(150, 200); //Posición en la que se comenzará a dibujar en pantalla
let x = 0;
let y = 0;
//Ciclo
for (let i = 0; i < slider.value(); i++) {
let prevx = x;
let prevy = y;
let n = i * 2 + 1;
let radius = 75 * (4 / (n * PI));//Variable en la que se determina la amplitud de
la onda
x += radius * cos(n * time);
y += radius * sin(n * time);
stroke(255, 100);
noFill();
ellipse(prevx, prevy, radius * 2);//Función para dibujar las circunferencias
//fill(255);
stroke(255);
line(prevx, prevy, x, y); //Linea que recorre la circunferencia
//ellipse(x, y, 8);
}
wave.unshift(y);//Almacena la nueva posición en y para dibujar.
translate(200, 0);
line(x - 200, y, 0, wave[0]);
beginShape();//Metodo para que no se dibuje la sombra del dibujo
noFill();
//Ciclo que en cada iteración dibuja el rastro de la onda
for (let i = 0; i < wave.length; i++) {
vertex(i, wave[i]);
}
endShape();
time += 0.05;
//Condición para eliminar elementos del arreglo en el caso de que excedan 250
if (wave.length > 250) {
wave.pop();
}
}
Colaboradores:
- Jaime Barbosa González
- Rodrigo García Hernández
- David Limón Aguilar
- Luis Angel Marin Coheto
Comentarios
Publicar un comentario