Modelo 3

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

Modelo 3.

Danilo Calderón Olivares.


1.Despeje de la velocidad inicial.
2. Código de processing.

float gravedad_tierra = 9.81;


float gravedad_neptuno = 11.15;
float gravedad_marte = 3.71;

float distanciaMaxima = 100;


int numAngulos = 4;
float[] angulos = {10, 20, 30, 45};

void setup() {
size(1000, 600);
drawTrajectories();
}

void drawTrajectories() {
// Calcular y mostrar las trayectorias para cada planeta
background(255);
for (int i = 0; i < 3; i++) {
float g = 0;
String planeta = "";
color lineaColor = color(0); // Negro por defecto
switch (i) {
case 0:
g = gravedad_tierra;
planeta = "Tierra";
lineaColor = color(0, 0, 255); // Azul para Tierra
break;
case 1:
g = gravedad_neptuno;
planeta = "Neptuno";
lineaColor = color(0, 255, 0); // Verde para Neptuno
break;
case 2:
g = gravedad_marte;
planeta = "Marte";
lineaColor = color(255, 0, 0); // Rojo para Marte
break;
}

for (int j = 0; j < numAngulos; j++) {


float angulo = radians(angulos[j]);
float v0 = calcularVelocidadInicial(distanciaMaxima, angulo, g);
float tiempoTotal = calcularTiempoTotal(v0, angulo, g);
float alcanceMaximo = calcularAlcanceMaximo(v0, angulo, g);

// Imprimir resultados en la consola


println("Planeta: " + planeta);
println("Tiempo total del recorrido: " + tiempoTotal + " s");
println("Velocidad en la componente x: " + (v0 * cos(angulo)) + " m/s");
println("Velocidad en la componente y: " + (v0 * sin(angulo)) + " m/s");
println("Alcance máximo definido: " + alcanceMaximo + " m");
println("Velocidad inicial proyectada: " + v0 + " m/s");
println("Ángulo de lanzamiento: " + angulos[j] + "°");

println();

dibujarPlanoCarteciano(i);

dibujarTrayectoria(v0, angulo, g, i, lineaColor);


}
}
}

float calcularVelocidadInicial(float distanciaMaxima, float angulo, float g) {


float velocidadInicial = distanciaMaxima * sqrt((g) / (2 * sin(angulo) * distanciaMaxima *
cos(angulo)));
//println("Esta es la velocidad de Danilo 2" +" "+ velocidadInicial);
return velocidadInicial;
}

float calcularTiempoTotal(float v0, float angulo, float g) {


float tiempoTotal = (2 * v0 * sin(angulo)) / g;
return tiempoTotal;
}

float calcularAlcanceMaximo(float v0, float angulo, float g) {


float alcanceMaximo = (v0 * v0 * sin(2 * angulo)) / g;
return alcanceMaximo;
}

void dibujarPlanoCarteciano(int index) {


stroke(0);
line(50 + index * 250, height - 50, 250 + index * 250, height - 50); // Eje X
line(50 + index * 250, height - 50, 50 + index * 250, 50); // Eje Y
textSize(12);
textAlign(CENTER, CENTER);
for (int i = 0; i <= 10; i++) {
float x = map(i, 0, 10, 50 + index * 250, 250 + index * 250);
line(x, height - 55, x, height - 45); // Marcas en el eje X
text(i * 10 + "m", x, height - 30); // Etiquetas en el eje X
}
for (int i = 0; i <= 5; i++) {
float y = map(i, 0, 5, height - 50, 50);
line(45 + index * 250, y, 55 + index * 250, y); // Marcas en el eje Y
text(i * 10 + "m", 30 + index * 250, y); // Etiquetas en el eje Y
}
}

void dibujarTrayectoria(float v0, float angulo, float g, int index, color lineaColor) {
float tiempoTotal = calcularTiempoTotal(v0, angulo, g);
float incrementoTiempo = tiempoTotal / 100;

float x, y;
float t = 0;

stroke(lineaColor); // Color de la trayectoria


strokeWeight(2);
noFill();
beginShape();

for (int i = 0; i <= 100; i++) {


x = v0 * cos(angulo) * t;
y = v0 * sin(angulo) * t - 0.5 * g * t * t;
vertex(x + 50 + index * 250, height - 50 - y);
t += incrementoTiempo;
}

endShape();
}

También podría gustarte