En esta ocasión he querido publicar un ejemplo de cómo realizar una simulación de tiro parabólico, es decir dado un proyectil lanzado a una velocidad "v" en m/seg. y una inclinación "a" en grados sexagesimales, para lo cual tomaremos como herramienta de programación c++.
Tiro parabólico:
Todos hemos lanzado alguna vez una pelota, piedra… y hemos notado que al lanzarla su trayectoria es una línea curva, esto es debido a la influencia de la gravedad sobre esta. Este fenómeno físico es calculable mediante formulas.
Para nuestro caso vamos a tomar como base las formula del tiro parabólico tanto para el movimiento vertical como el horizontal.
Movimiento horizontal
MH=v * sen a * t - ½gt2 donde v es la velocidad en m/s, a el ángulo de inclinación, t el tiempo en seg. y g la aceleración de la gravedad 9.8 m/s
Movimiento vertical
MV=v * cos a * t
Ahora veamos el código fuente.
Nota: se supone que el lector tiene conocimientos sobre c++
/*
Autor: Luis Alberto De Jesús
dataunix[arroba]hotmail.com
Programa que simula el lanzamiento de un proyectil dado su ángulo
y velocidad inicial tomando como base las fórmulas referentes al tiro parabólico
*/
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
#include <dos.h>
#include <string.h>
double xmax=0, ymax=0;
//variables globales, obtienen resolución máxima
class video
{
public: void inicializar();
public: void finalizar();
};
void video::inicializar()
{
//solicitando autodetección del driver de gráficos
int gdriver = DETECT, gmode, errorcode;
//Inicializando driver de gr ficos y variables locales
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
//no olvidar especificar ruta de las librerias de gráficos
//verificando errores
errorcode = graphresult();
if (errorcode != grOk) //ocurri¢ un error?
{
grapherrormsg(errorcode);
cout<<"Error de video: "<<errorcode;
cout<<"Presionar cualquier tecla: ";
getch();
exit(1); //Termina si hay un error
};
}
void video::finalizar()
{
closegraph(); //proceso de limpieza
}
class ejes
{
public: void dibujar();
public: void cuadricula();
};
void ejes::dibujar()
{
cleardevice();//limpia la pantalla
setcolor(EGA_YELLOW);
setbkcolor(EGA_BLUE);
Página siguiente ![]() |
Trabajos relacionados
Ver mas trabajos de Programacion |
|
Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.