Visual Basic .NET Dibujo de funciones

14
Graficar cualquier funcion algebraica usando vb.net Publicado por ingsistele en mayo 1, 2011 Graficar una funcion algebraica en muchas ocasiones se convierte en algo tedioso y complicado de hacer, en la mayoria de las ocasiones recurrimos a software especializado que se encargan de elaborar dichas graficas como es el famoso matlab o la herramienta de matematicas que incluye microsoft encarta. En este tutorial se realizara una aplicacion a traves de la cual la elaboracion de graficas se nos convertira en algo sencillo ya que vamos a crear un graficador, si , una herramienta capaz de plotearnos la funcion que le indiquemos en la entrada, para ello, haremos uso de la libreria JEP (Java parses and evaluates mathematical expressions) explicado en el post anterior y tambien haremos uso del control MSchart de microsoft para visual express 2008 el cual servira como control que mostrara las graficas… Primero que todo tenemos que instalar el control mschart, se puede descargar de: Descargar mschart Bien, una vez descargado debemos instalar el control, el cual se llama MSChart.exe, lo ejecutas y el se instala normalmente; despues hay que agregar el control al vb.net, para ello debejos ejecutar el archivo llamado MSChart_VisualStudioAddOn.exe, que tambien se puede descargar de: agregar mschart a vb.net tambien lo ejecutas y lo instalas normalmente, en la siguiente imagen te muestro los archivos a instalar, los cuales subire al final del post,

description

Dibujo de funciones mediante Visual basic .NET

Transcript of Visual Basic .NET Dibujo de funciones

Page 1: Visual Basic .NET Dibujo de funciones

Graficar cualquier funcion algebraica usando vb.net

Publicado por ingsistele en mayo 1, 2011

Graficar una funcion algebraica en muchas ocasiones se convierte en algo tedioso y complicado de hacer, en la mayoria de las ocasiones recurrimos a software especializado que se encargan de elaborar dichas graficas como es el famoso matlab o la herramienta de matematicas que incluye microsoft encarta.

En este tutorial se realizara una aplicacion a traves de la cual la elaboracion de graficas se nos convertira en algo sencillo ya que vamos a crear un graficador, si , una herramienta capaz de plotearnos la funcion que le indiquemos en la entrada, para ello, haremos uso de la libreria JEP (Java parses and evaluates mathematical expressions) explicado en el post anterior y tambien haremos uso del control MSchart de microsoft para visual express 2008 el cual servira como control que mostrara las graficas…

Primero que todo tenemos que instalar el control mschart, se puede descargar de: Descargar mschart

Bien, una vez descargado debemos instalar el control, el cual se llama MSChart.exe, lo ejecutas y el se instala normalmente; despues hay que agregar el control al vb.net, para ello debejos ejecutar el archivo llamado MSChart_VisualStudioAddOn.exe, que tambien se puede descargar de: agregar mschart a vb.net tambien lo ejecutas y lo instalas normalmente, en la siguiente imagen te muestro los archivos a instalar, los cuales subire al final del post,

ahora creamos un nuevo proyecto de vb.net y en la barra de herramientas buscamos el control mschart tal y como vemos en la siguiente imagen:

Page 2: Visual Basic .NET Dibujo de funciones

en el cuadro de herramientas se puede ver el control, lo agregamos al formulario y tambien agregamos un boton un textbox y varios label, como se puede ver en la imagen, el control chart muestra una imagen de un histograma o grafica de barras, para cambiar el tipo de grafica puesto que el que usaremos sera un grafico de tipo lineal, seleccionamos el control y nos dirigimos al cuadro de propiedades, bucamos la opcion que diga series, hacemos click en ella y luego nos abrira una nueva ventana, alli en la lista de la parte derecha buscamos la opcion que diga chart type y seleccionamos “Spline”, en la siguiente imagen se pueden ver los pasos a seguir:

Listo, luego se hace click en el boton aceptar y nuestro control quedara con una grafica del siguiente aspecto:

Page 3: Visual Basic .NET Dibujo de funciones

despues de todo esto, si empezamos a programar, inicialmente importamos las referencias a JEP, no olvidemos que antes es necesario agregar la referencia a la dll (explicado en el post anterior):

ver fuente

imprimir ?

1 Imports SingularSys.Jep

2 Imports SingularSys.Jep.Types

luego importamos la biblioteca que hace referencia a mschar para poder hacer uso de sus funciones y propiedades:

ver fuente

imprimir ? 1 Imports System.Windows.Forms.DataVisualization.Charting

ahora declaramos las siguientes variables como globales:

ver fuente

imprimir ?

1 Dim cad As String

2 Private jVar As New JepInstance()3 Dim j As New JepInstance()

luego, en el evento load del formulario, debemos escribir lo siguiente:

Page 4: Visual Basic .NET Dibujo de funciones

ver fuente

imprimir ?

1Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

2 Chart1.Series(0).ChartType = SeriesChartType.Spline

3 Chart1.Series(0).Points.AddY(1)

4 End Sub

despues de haber inicializado nuestra grafica lo que hacemos ahora es programar el tipo de grafica a generar cuando se le de click al boton graficar, para ello, escribimos en el evento click de dicho boton las siguientes instrucciones:

ver fuente

imprimir ? 01 Chart1.Series(0).Points.Clear()

02

03 Me.Label_ngrafica.Text = Me.TextBox_funcion.Text 'muestro en el label ngrafica la funcion de entrada

04

05 Dim i As Double

06

07 For i = -10 To 10 Step 0.1

08

09 Try

10

11 jVar.VarTab.AddVariable("x", New JepDouble(i))

12

13 jVar.ReinitializeComponents()

14

15 jVar.Parse(Me.TextBox_funcion.Text)

16

17 Chart1.Series(0).Points.AddXY(i, CDbl(jVar.Evaluate().ToString))

18

19 Catch ex As Exception

Page 5: Visual Basic .NET Dibujo de funciones

20

21 End Try

22

23 Next

el proceso que se hace dentro del ciclo for es hacer un recorrido desde -10 hasta 10 en pasos o incrementos de 0.1, atraves del cual se le ira asignando cada valor de la variable usada en el ciclo a la variable x, mas adelante, se va evaluando dicha funcion en el valor actual (como se vio en el post anterior), y se va graficando el punto; de tal manera que al final obtendremos una sucesion de puntos que formaran nuestra grafica en un rango desde -10 a 10.

es momento ahora de realizar una prueba a nuestro graficador intentando hacer varias graficas, probemos con una sencilla primero:

y=x^2

ahora probemos con la funcion coseno de x: cos(x)

Page 6: Visual Basic .NET Dibujo de funciones

Muy bien, hasta aqui hemos logrado hacer un simple y potente graficador en vb.net usando herramientas faciles de manejar, espero y este tutorial les sea facil de entender y resulte util en sus trabajos o en la cotidianidad…

hasta la proxima…

Descargar Programa

About these ads

Me gusta:

Me gustaSe el primero en decir que te gusta.

Esta entrada fue publicada el mayo 1, 2011 a 1:54 am y está archivada en Programacion en .Net. Puedes seguir los comentarios a esta entrada a través de RSS 2.0 feed. Puedes deja un comentario, o trackback desde tu propio sitio.

11 comentarios hacia “Graficar cualquier funcion algebraica usando vb.net”

1.

José escribió

septiembre 14, 2011 a 2:48 pm

Page 7: Visual Basic .NET Dibujo de funciones

caray, eres un tigre y que tal forma de introducirnos en este tema, gracias te debo la vida

Responder

2.

Rafael Becerra escribió

enero 21, 2012 a 5:27 pm

Gracias por este tutorial, me saco de un problema en la universidad…. Pero tengo un problema, al intentar generar el proyecto me sale este error: “El tipo JepInstance” no está definido”… Espero que me puedas ayudar.. Gracias de antemano

Responder

3.

Rafael Becerra escribió

enero 21, 2012 a 11:44 pm

Gracias por esta información, me sacó de un problema en la universidad para hacer un programa de integración numérica a través del método de Romberg… Pero tengo un problema, cuando quiero generar el proyecto me sale este error: “El tipo JepInstance no está definido”, el .exe que se encuentra en la carpeta bin del proyecto bin funciona perfecto en mi computadora, pero al intentar ejecutarlo en otra, me sale un error, y copié el jep.dll y es el mismo problema… espero me puedas ayudar… Gracias de Antemano….

Responder

o

ingsistele escribió

enero 22, 2012 a 3:56 pm

Hola Rafael, Respecto a tu pregunta “El tipo JepInstance no está definido” , lo que te esta ocurriendo es que no esta agregada la referencia al proyecto de vb.net, es por eso que no se te genera la aplicacion, lo que debes de hacer para que te funcione correctamente es:

Page 8: Visual Basic .NET Dibujo de funciones

1) ir la barra de menu de vb.net y seleccionamos la opcion proyecto (es la cuarta opcion del menu superior de izquierda a derecha) y en el menu desplegable que aparece seleccionamos la opcion agregar referencia…

2) en el cuadro de dialogo que emerge haces click en la pestaña examinar y accedes a la carpeta debug (esta dentro de bin) del proyecto, donde debe de estar la dll de Jep, luego la seleccionas y haces clic en el boton aceptar, ahora si te debe de haber quedado agregada la libreia de jep; puedes comprobarlo en el explorador de soluciones de vb.net (se encuentra en el menu de la parte derecha de la pantalla) alli seleleccionas el boton que dice mostrar todos los archivos y realmente te fijas de que aparezca jep entre las libreiras usadas.

Ten encuenta que debes tener instalado primero el mschart y el complemento para añadirlo a vb.net cuyos link se encuentran al inicio de este post.

si quieres mas informacion sobre como agregar la referencia visita el post “Evaluar expresiones matematicas con JEP y vb.net”…

eso es todo amigo!, espero y te sirva de ayuda….

Responder

Rafael Becerra escribió

enero 23, 2012 a 3:05 pm

Correcto, cuando inicio la depuración no hay problema, la aplicación corre… El problemas es cuando se genera la aplicación, o se publica….

ingsistele escribió

febrero 3, 2012 a 11:33 pm

Si vas a publicar la aplicacion te recomiendo InnoSetup es un programa muy simple para publicar programas mediante un instalador, lo puedes bajar Haciendo clic Aqui

4.

Page 9: Visual Basic .NET Dibujo de funciones

Car Dan Bec escribió

marzo 16, 2012 a 2:04 am

una pregunta como le hago par poder poner los intervalos,es decir los valores para xsaludos!!

Responder

o

ingsistele escribió

marzo 17, 2012 a 6:58 pm

Hola Car Dan Bec, pueno a tu pregunta te puedo responder lo siguiente:

1) si quieres definir un limite maximo y minimo en los ejes x o y debes colocar las siguientes instrucciones dentro del load del formulario

ver fuente

imprimir ?

1 Chart1.ChartAreas(0).AxisX.Minimum = 0 'Minimo valor de x

2 Chart1.ChartAreas(0).AxisX.Maximum = 100 'Numero de puntos en x de la grafica, (maximo valor 100)

3 Chart1.ChartAreas(0).AxisY.Minimum = -2 'Minimo valor de y

4 Chart1.ChartAreas(0).AxisY.Maximum = 5 'Numero de puntos en y de la grafica, (maximo valor 5)

5 Chart1.Series(0).Points.AddY(1)

2) si lo que deseas es establecer un rango predefinido para tus coordenadas en x debes de ir variando los valores del ciclo for tal y como puedes ver en este post, la grafica va desde el punto -10 hasta el 10 con incrementos de 0.1, si quieres que los valores en x esten distribuidos de otra manera prueba armandote otro ciclo como:

ver fuente

Page 10: Visual Basic .NET Dibujo de funciones

imprimir ?

1 For i = 0 To 20 Step 2

2

3 'aqui va el codigo para generar la grafica

4

5 Next

Espero y te resulte util esta explicacion y puedas resolver tu problema!

Responder

5.

Car Dan Bec escribió

marzo 18, 2012 a 7:58 am

muchas gracias me sirvió bastante da gusto que haiga personas como tu que comparten sus conocimientosmuy bueno el tutorial

Responder

6.

Jose Luis escribió

julio 26, 2012 a 11:20 pm

Hola Amigo, he estado echando un vistazo al tutorial y me parece magnifico, hace tiempo que vengo buscando algo parecido pero yo quiero que la grafica coja los datos que le mande via serie, por ejemplo si yo le mando una “A” al dispositivo mediante el puerto serie éste me responde mandando datos y son los que quisiera graficar en la grafica, ¿me podrias dar alguna idea? mandar los datos por el puerto serie no es problema y que me responda tampoco es el Chartcontrol el que no puedo enlazar con esos datos que me envia el dispositivo via puerto serie no tengo nidea de como hacerlo.Desde ya muchas gracias y felicidades por tu web.

Responder

Page 11: Visual Basic .NET Dibujo de funciones

o

ingsistele escribió

julio 30, 2012 a 5:14 pm

Hola Jose Luis, lo de graficar algun valor que envias desde un microcontrolador no es complicado, solo debes tener en cuenta que los datos que envies sean de tipo numerico, es decir entero, double o flotante; ademas el tipo de grafica a generar debe ser: SeriesChartType.FastLine, entonces colocas en el load del formulario:

ver fuente

imprimir ?

1 Chart1.Series(0).ChartType = SeriesChartType.FastLine

y para que grafiques los datos que vas recibiendo desde el puerto serie, debes crear un procedimiento que revise constantemente la llegada de cada trama de datos para extraer el valor numerico a graficar y propiamente lo graficas con solo agregar una linea de codigo asi:

ver fuente

imprimir ?

1 Chart1.Series(0).Points.AddY(valoragraficar)

. Puedes descargar un ejemplo para lo que deseas realizar desde el siguiente link: Ejemplo de datos Graficados desde el Puerto Serie

Responder

Deja un comentario

Añade tu comentario aquí...

guest