Práctica # 2 Simulación del mundo real: física
Enviado por Orlando Mendiola Palacios • 23 de Abril de 2021 • Trabajo • 1.052 Palabras (5 Páginas) • 71 Visitas
[pic 1] | Reporte de práctica | [pic 2] |
Clave de la práctica: ISC- SCD-1022-02 |
Nombre de los estudiantes: _Javier Orlando Mendiola Palacios_____________________________
__________________________________________________________
__________________________________________________________
Ingeniería en Sistemas Computacionales
Graficación
SCD-1022
Grupo 4A
Práctica # 2
Simulación del mundo real: física
- Resumen de la Actividad
En esta actividad se solicito recrear por medio del programa processing un tablero de Galton, para ello se utilizaron distintas variables que recrearan los elementos necesarios como: las pelotitas, las líneas de embudo, las barras con las que debe chocar y los contenedores. A estos se les añadió propiedades físicas a partir de la librería “física” lo que permite simular la gravedad para las pelotitas y la reacción al chocar contra las líneas de embudo.
- Resultado de aprendizaje alcanzado
Esta practica sirve para entender mejor la distribución binomial que se aplica en el tablero, ya que cada pelotita tiene 2 caminos para desplazarse que son izquierda y derecha por cada barra con la que choca hasta llegar a los contenedores inferiores y al momento de graficarse tienen una forma similar a una campana de Gauss, además la forma es mas acertada cuando hay mas pelotitas lo que establece que en una muestra de una población, la distribución del promedio se acerca a una distribución normal.
- Evidencia de la práctica
import fisica.*;//libreria que ayuda a simular la realidad
PImage bg;
FWorld w;// variable que genera el mundo
FLine p,Pd, Pi;// limites del tablero
FLine bd, bi;//barras que serviran de embudo
FCircle [] Pelotas, Barras;//se crean arreglos de tipo FCircle para generar las pelotas del tablero y las barras que seran estaticas
FBox[] columnas;// arreglo para las columnas inferiores
FBox pizquierda;
void setup(){//funcion para crear el entorno
size (253,600);//tamaño de la ventana
bg=loadImage("metal.jpg");// imagen para el fondo
Fisica.init(this);//se añade la libreria al mundo
w=new FWorld();//se inizializa la variable world(w)
w.setGravity(0,height);//se simula la gravedad
// se inicializan las las variables de las lineas que serviran de embudo
bd= new FLine((width/2)+10,100,(width/2)+250,20);
bd.setStroke(250);//color de la linea
bd.setStaticBody(true);//la barra sera estatica
bd.setRestitution(1);//reaccion ante choque
w.add(bd);//se agrega la barra
bi= new FLine((width/2)-250,20,(width/2)-10,100);
bi.setStroke(250);
bi.setStaticBody(true);
bi.setRestitution(1);
w.add(bi);
// termina posicionamiento de las lineas
p=new FLine(0,height,width,height);//valores para el piso
w.add(p);//se añade el piso
Pd=new FLine(0,0,0,height);
w.add(Pd);
pizquierda= new FBox(2,height*2);
pizquierda.setPosition(width, height);
pizquierda.setStaticBody(true);
w.add(pizquierda);
w.add(Pi);
Pelotas= new FCircle[40];//NUMERO DE PELOTAS GENERADAS
Barras = new FCircle[12];//TAMAÑO DE LAS BARRAS
columnas = new FBox[12];// TAMAÑO DE LA SEPARACION ENTRE LAS BARRAS
iniciarTablero();}
void draw(){ // FUNCION PARA GRAFICAR NUESTROS COMPONENTES
background(bg);
w.step();//AVANCE DEL TIEMPO EN EL MUNDO
w.draw(); }// DIBUJA TODOS LAS FORMAS PREVIAMENTE CREADAS
void mouseClicked(){// METODO QUE ACTIVA EL PROGRAMA AL HACER CLIC
for (int c=0; c<40; c++){//CICLO PARA CREAR 20 PELOTAS
Pelotas[c] = new FCircle(9);//TAMAÑO DE CADA PELOTA
Pelotas[c].setPosition(mouseX+random(10),0);//POSICION DE LAS PELOTAS AL INICIAR
Pelotas[c].setStrokeColor(#ADFF2F);// COLOR DEL CONTORNO DE LA PELOTA
w.add(Pelotas[c]);}//SE CREAN LAS PELOTAS EN EL TABLERO
redraw(); }//METODO QUE DIBUJA LAS PELOTAS SIN NECESIDAD DE DAR MAS CLICS
void iniciarTablero(){//EL METODO CREA LOS CUERPOS RESTANTES EN EL TABLERO
int cont=1;// VARIABLE PARA VERIFICAR QUE LAS BARRAS SE CREARON
for(int c=0; c<7; c++){//CICLO FOR PARA CREAR LAS FILAS DE ESFERAS
Barras[c]= new FCircle(10);//TAMAÑO DE LAS ESFERAS(IGUAL AL DE LAS PELOTAS)
Barras[c].setStaticBody(true);//LAS ESFERAS CREADAS SERAN ESTATICAS
Barras[c].setPosition(((width/2)-60)+(c*20),150);//POSICION DE LAS ESFERAS
Barras[c].setStrokeColor(#ff0000);
w.add(Barras[c]);}// CREACION DE LAS BARRAS DE ESFERAS EN EL TABLERO
for(int c=0; c<10; c++){//LINEA DE 10 ESFERAS
Barras[c]= new FCircle(10);
Barras[c].setStrokeColor(#0000FF);
Barras[c].setStaticBody(true);
Barras[c].setPosition(((width/2)-90)+(c*20),170);
w.add(Barras[c]);}
while(cont<9){ //CICLO PARA CREAR MAS FILAS DE ESFERAS
if(cont%2==0){//SI EL CONTADOR ES PAR SE CREAN 12 ESFERAS
for(int c=0; c<12; c++){//CREACION DE 12 ESFERAS
Barras[c]= new FCircle(10);
Barras[c].setStaticBody(true);
Barras[c].setPosition(((width/2)-110)+(c*20),170+cont*20);[pic 3]
Barras[c].setStroke(0);
Barras[c].setStrokeColor(#0000ff);
w.add(Barras[c]);}
cont++;//SE INCREMENTA EL CONTADOR
}else{//SI EL CONTADOR ES IMPAR SE CREAN 11 ESFERAS
for(int c=0; c<11; c++){//CREACION DE 11 ESFERAS
Barras[c]= new FCircle(10);
Barras[c].setStaticBody(true);
...