Visual Basic - graficas de funciones con microsoft script control

Life is soft - evento anual de software empresarial
 
Vista:

graficas de funciones con microsoft script control

Publicado por david (14 intervenciones) el 21/09/2002 01:29:47
hola, ya voy sacando cosas de graficas de funciones gracias a vosotros en parte pero aun no está del todo, ya se q he de usar el microsoft script control (una de las formas)
y lo uso de la siguiente forma
con dos text box y dando un valor predefinido a x de 1, con
ScriptControl1.AddCode "Dim x"
ScriptControl1.AddCode "x = 1"
resultado = ScriptControl1.Eval(formula.Text)
siendo resutado el valor de la ecuacionq le meta en un text box para un valor de x de uno, ahora bien para usar esto para dibujar funciones he de repetirlo para cada punto, por ejemplo, io hize esto:
Dim i As Currency
Dim y As Currency

For i = -5 To 5 Step 0.001
ScriptControl1.AddCode "Dim x"
ScriptControl1.AddCode "x = i"
y = ScriptControl1.Eval(formula.Text)
Picture1.PSet (x, y), [vbRed]
Next i
q deberia funcionar pero me temo q el problema esta al querer pasar una variable i al valor de x en el ScriptControl1.AddCode "x = i", hay mas problemas aparte de se? el codigo esta bien? si es ese u otro, como puedo solucionarlo? muchisimas gracias de antemano ;)
DAVID
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:graficas de funciones con microsoft script cont

Publicado por bla (230 intervenciones) el 21/09/2002 20:27:38
te falla porque "x = i" es un literal, la linea sería:
scriptcontrol1.addcode "x=" & str(i)
obs: el str es importante si i tiene decimales
Aún así te va a fallar, pues aunque estas añadiendo código, en ningún momento lo estás ejecutando, la función eval sólo evalúa su parámetro no el código del script.
Me parece mucho más lógico hacer lo que sigue:
dim x as single
dim s as string
dim y as single
For x=-1 to 1 step .1 ' puedes meter el -1, 1, .1 en otras casillas de texto
s=Replace(text1.text," x ",x)
y=scriptcontrol1.eval(s)
picture1.pset(x,y), vbred
next
Obs: la variable de la función será siempre x con un espacio antes y otro después, para que no falle el reemplazo. Si quieres refinarlo puedes reemplazarla también cuando sea [a]x[b] con [a] y [b] que no sean letras (tendrás que mejorar la función replace)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:graficas de funciones con microsoft script cont

Publicado por bla (230 intervenciones) el 21/09/2002 20:52:26
Aquí tienes un ejemplo funcionando.
Puedes parametrizarlo para que el usuario elija los limites de la representación, x inicial, x final, y mínimo visible, y máximo visible...
Private Sub Command1_Click()
Dim x As Single
Dim y As Single
Dim s As String
Dim pi As Single
pi = 4 * Atn(1)
Screen.MousePointer = 11
For x = 0 To 360 Step 1
s = Replace("sin(<x>*<pi>/180)", "<x>", Str(x))
s = Replace(s, "<pi>", Str(pi))
y = ScriptControl1.Eval(s)
Debug.Print y
Picture1.PSet (x * Picture1.Width / 360, (1 + y) * (Picture1.Height / 2)), vbRed
Next
Screen.MousePointer = 0
End Sub
'Obs: para no desarrollarlo demasiado la variable a usar en las formulas es <x>.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:graficas de funciones con microsoft script cont

Publicado por david (14 intervenciones) el 22/09/2002 03:12:18
tu primer codigo no me funciona... no se porque pero n me va, me da error en la linea:
y=scriptcontrol1.eval(s)
lo has probado tu?
de todos modos muchas gracias por todo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar