Ecuaciones Parametricas VB.net

En matemáticas, un sistema de ecuaciones paramétricas permite representar una curva o

superficie en el plano o en el espacio, mediante valores que recorren un intervalo de

números reales, mediante una variable, llamada parámetro, considerando cada

coordenada de un punto como una función dependiente del parámetro.

En el uso estándar del sistema de coordenadas, una o dos variables (dependiendo de si se

utilizan dos o tres dimensiones respectivamente) son consideradas como variables

independientes, mientras que la restante es la variable dependiente, con el valor de esta

siendo equivalente al de la imagen de la función cuando los restantes valores son sus

parámetros.

Esta representación tiene la limitación de requerir que la curva sea una función. No todas

las curvas cumplen con dicha condición. Para poder trabajar con la misma como si se

tratara de una función, lo que se hace es elegir un dominio y una imagen diferentes, en

donde la misma sí sea función. Para hacer esto, tanto x como y son considerados

variables dependientes, cuyo resultado surge de una tercera variable (sin representación

gráfica) conocida como «parámetro».

Encontraremos diferentes ecuaciones parametricas las cuales nos generan algunas de la

siguientes figuras:

Epitrocoide, Hipotrocoide, Cicloide, Deltoide, Figuras de Lissajous.

Epitrocoide:

   

Cicloide:

Deltoide:

Lissajous:

Hipotrocoide:

Ahora vamos a generar cada una de las figuras en un programa con VB.

Algoritmo Epitrocoide:

Dim X, Y As Single

X = (RadioCG + RadioCE) * Math.Sin(AnguloCirculo)

Y = (RadioCG + RadioCE) * Math.Cos(AnguloCirculo)

e.Graphics.DrawEllipse(New Pen(Color.BlueViolet, 3), X – RadioCE, Y – RadioCE, 2 *

RadioCE, 2 * RadioCE)

‘Colocamos el lapiz sobre el circulo externo. El lapíz dibujara la curva Epitrocoide

Dim X1, Y1 As Single

X1 = (RadioCG + RadioCE) * Math.Sin(AnguloCirculo) – d * Math.Sin(((RadioCG +

RadioCG + RadioCE) / RadioCE) * AnguloCirculo)

Y1 = (RadioCG + RadioCE) * Math.Cos(AnguloCirculo) – d * Math.Cos(((RadioCG +

RadioCG + RadioCE) / RadioCE) * AnguloCirculo)

e.Graphics.DrawLine(New Pen(Color.Gray, 3), X, Y, X1, Y1)

‘El extremo del lapiz dibuja la curva parametrica epitrocoide

Dim Puntos As Point = New Point(X1, Y1)

TrazoEpitrocoide.Add(Puntos)

For i = 1 To TrazoEpitrocoide.Count – 1

e.Graphics.DrawLine(New Pen(Color.OrangeRed, 4), TrazoEpitrocoide(i),

TrazoEpitrocoide(i – 1))

Next

Algoritmo Cicloide:

Dim X, Y As Single

X = RadioCI * (AnguloCirculo – Math.Sin(AnguloCirculo))

Y = RadioCI * (1 – Math.Cos(AnguloCirculo))

e.Graphics.DrawEllipse(New Pen(Color.BlueViolet, 3), (AnguloCirculo + X) – posIn, (0 –

2 * RadioCI), 2 * RadioCI, 2 * RadioCI)

‘Colocamos el lapiz sobre el circulo. El lapíz dibujara la curva cicloide

Dim X1, Y1 As Single

X1 = RadioCI + RadioCI * (AnguloCirculo – Math.Sin(AnguloCirculo))

Y1 = -RadioCI * (1 – Math.Cos(AnguloCirculo))

e.Graphics.DrawLine(New Pen(Color.Gray, 3), (AnguloCirculo + X + RadioCI) – posIn, (0

– RadioCI), X1 – posIn, Y1)

‘El extremo del lapiz dibuja la curva

Dim Puntos As Point = New Point(X1 – posIn, Y1)

TrazoEpitrocoide.Add(Puntos)

For i = 1 To TrazoEpitrocoide.Count – 1

e.Graphics.DrawLine(New Pen(Color.OrangeRed, 4), TrazoEpitrocoide(i),

TrazoEpitrocoide(i – 1))

Next

Algoritmo Deltoide:

Dim X, Y As Single

X = (RadioCG – RadioCE) * Math.Sin(Angulo_Circulo)

Y = (RadioCG – RadioCE) * Math.Cos(Angulo_Circulo)

e.Graphics.DrawEllipse(New Pen(Color.BlueViolet, 3), X – RadioCE, Y – RadioCE, 2 *

RadioCE, 2 * RadioCE)

‘Colocamos el Lapiz Sobre el Circulo Externo, el lapiz dibujara la curva Deltoide

Dim X1, Y1 As Single

X1 = (RadioCG – RadioCE) * Math.Sin(Angulo_Circulo) + RadioCE *

Math.Sin(Angulo_Circulo * (1 – (RadioCG / RadioCE)))

Y1 = (RadioCG – RadioCE) * Math.Cos(Angulo_Circulo) + RadioCE *

Math.Cos(Angulo_Circulo * (1 – (RadioCG / RadioCE)))

e.Graphics.DrawLine(New Pen(Color.Gray, 3), X, Y, X1, Y1)

‘El Circulo Externo con el Lapiz Dijuba la curva parametrica Deltoide

Dim Puntos As Point = New Point(X1, Y1)

TrazoDeltoide.Add(Puntos)

For i = 1 To TrazoDeltoide.Count – 1

e.Graphics.DrawLine(New Pen(Color.OrangeRed, 4), TrazoHipocicloide(i),

TrazoDeltoide (i – 1))

Next

Algoritmo Hipotrocoide:

Dim X, Y As Single

X = (RadioCG – RadioCI) * Math.Sin(AnguloCirculo)

Y = (RadioCG – RadioCI) * Math.Cos(AnguloCirculo)

e.Graphics.DrawEllipse(New Pen(Color.BlueViolet, 3), X – RadioCI, Y – RadioCI, 2 *

RadioCI, 2 * RadioCI)

‘Colocamos el lapiz sobre el circulo INTERNO. El lapíz dibujara la curva hipotrocoide

Dim X1, Y1 As Single

X1 = (RadioCG – RadioCI) * Math.Cos(AnguloCirculo) + d * Math.Cos(((RadioCG –

RadioCI) / RadioCI) * AnguloCirculo)

Y1 = (RadioCG – RadioCI) * Math.Sin(AnguloCirculo) – d * Math.Sin(((RadioCG –

RadioCI) / RadioCI) * AnguloCirculo)

e.Graphics.DrawLine(New Pen(Color.Gray, 3), X, Y, X1, Y1)

‘El extremo del lapiz dibuja la curva parametrica Hipotrocoide

Dim Puntos As Point = New Point(X1, Y1)

TrazoHipotrocoide.Add(Puntos)

For i = 1 To TrazoHipotrocoide.Count – 1

e.Graphics.DrawLine(New Pen(Color.OrangeRed, 4), TrazoHipotrocoide(i),

TrazoHipotrocoide(i – 1))

Next

Posted in Programacion and tagged , , , , , .

Deja un comentario

Tu dirección de correo electrónico no será publicada.