Está en la página 1de 4

UNIVERSIDAD NACIONAL DE TRUJILLO

Ejemplo de Aplicación: Movimiento Parabólico con Visual C#


Fundamento:
Se denomina movimiento parabólico al realizado por un objeto cuya trayectoria describe una
parábola. Se corresponde con la trayectoria ideal de un proyectil que se mueve en un medio
que no ofrece resistencia al avance y que está sujeto a un campo gravitatorio uniforme.
Puede ser analizado como la composición de dos movimientos rectilíneos: un movimiento
rectilíneo uniforme horizontal y un movimiento rectilíneo uniformemente acelerado vertical.
Gráficamente se puede ver como la figura adjunta:
Como se puede observar se tiene los siguientes
elementos:
Vo : Velocidad de lanzamiento del proyectil.
Ymax : Altura máxima que puede alcanzar el proyectil
Ø : Angulo de lanzamiento del proyectil
∆X : Alcance del proyectil

Fórmulas que lo Componen;


𝑽𝒐𝟐 ∗𝑺𝒆𝒏𝒐(𝟐∗∅)
Alcance:
𝒈
𝑽𝒐𝟐 ∗𝑺𝒆𝒏𝒐∅𝟐
Altura Máxima :
𝟐∗𝒈
𝟐∗𝑽𝒐∗𝑺𝒆𝒏𝒐∅
Tiempo de Vuelo:
𝒈

Para mostrar el comportamiento gráfico del proyectil utilizaremos el componente que


requiere del archivo ZedGraph.dll que se tiene que adjuntar en el cuadro de herramientas.
Para eso ubicar el puntero del mouse en el Cuadro de Herramientas y con click derecho se
activara el siguiente menú emergente para lo cual debemos seleccionar Elegir elementos ….
Tal como se muestra en la siguiente figura:
UNIVERSIDAD NACIONAL DE TRUJILLO
Ahora debemos buscar el archivo ZedGraph.dll en la ubicación que lo hemos copiado. Una
vez ubicado debe aparecer el siguiente dialogo del cuadro de herramientas

Y en el cuadro de herramientas debe aparecer tal como se muestra en la siguiente figura

Este objeto debemos arrastrar al formulario para su uso.


UNIVERSIDAD NACIONAL DE TRUJILLO
Luego elaborar el siguiente formulario con los nombres de los objetos que se señalan:

grafico

cboangulo

txtvelocidad

txtalcance

txtaltura

txttiempo

En el combo cboangulo incluir los siguientes valores: 10, 20, 30, 45, 60, 75, 90. Un ejemplo
de ejecución sería:
UNIVERSIDAD NACIONAL DE TRUJILLO
Ahora la programación:

Botón Resolver:
double alcance=0,velocidad=0,tiempo=0,anguloengrados=0,anguloenradianes=0,altura=0;
double g = 9.8,y=0;
anguloengrados=double.Parse(cbogrados.Text);
anguloenradianes=anguloengrados*Math.PI/180;
velocidad=double.Parse(txtvelocidad.Text);
tiempo = ((2 * velocidad) * (Math.Sin(anguloenradianes))) / g;
altura = (Math.Pow(velocidad, 2) * Math.Pow(Math.Sin(anguloenradianes), 2)) / (2 * g);
alcance = ((Math.Pow(velocidad, 2) * (Math.Sin(anguloenradianes*2)))/g);
txtalcance.Text = alcance.ToString();
txtaltura.Text = altura.ToString();
txttiempo.Text = tiempo.ToString();
int puntos = System.Convert.ToInt32(alcance)+1;
double[] xvals = new double[puntos];
double[] yvals = new double[puntos];
for (int p = 0; p < puntos; p++)
{
y = p*Math.Tan(anguloenradianes)-
(g*Math.Pow(p,2))/(2*Math.Pow(velocidad,2)*Math.Pow(Math.Cos(anguloenradianes),2));
xvals[p]=p;
yvals[p]=y;
}
grafico.GraphPane.Title.Text = "Movimiento Parabólico";
grafico.GraphPane.XAxis.Title.Text = "Alcance en metros";
grafico.GraphPane.YAxis.Title.Text = "Altura en metros";
grafico.GraphPane.XAxis.Scale.Max = alcance;
grafico.GraphPane.YAxis.Scale.Max = altura;
grafico.GraphPane.AxisChange();
grafico.GraphPane.AddCurve("Trayectoria", xvals, yvals, Color.Blue,
ZedGraph.SymbolType.None);
grafico.Refresh();

Botón Nuevo:

txtvelocidad.Clear();
txttiempo.Clear();
txtalcance.Clear();
txtaltura.Clear();
txtvelocidad.Focus();
grafico.GraphPane.CurveList.Clear();
grafico.Refresh();

Botón Salir:

this.Close();