Visual Basic - Br.

Life is soft - evento anual de software empresarial
 
Vista:

Br.

Publicado por Iharob Al Asimi (2 intervenciones) el 11/10/2007 16:25:22
Hola soy estudiante de física, hace un tiempo me había preguntado, como hacer la representación gráfica de una función de dos variables (3D), usando visual basic. Descubrí que es posible con una simple suma de vectores. esa explicación la puedo enviar si alguien me la pide porque es tedioso escribirla para el foro. Lo que hay que hacer es lo siguiente.

En un formulario creamos un control Picture_Box.

Declaramos en el Módulo

Public Theta, Phi

Luego construimos estas funciones en un módulo

'Para transformar de Grados a Radianes.

Public Function Radianes (Angulo)
Radianes = Angulo * ( 180 / 3.141592654 ) ' 3.141592654 es el valor de Pi, puede ser mas preciso si quieren
End Function

'Para dibujar puntos de 3D en un plano 2D

Public Function X_Bidimensional (x, y, z)
X_Bidimensional = (y * Cos (Phi)) - (x * Cos (Theta))
End Function

Public Function Y_Bidimensional (x, y, z)
Y_Bidimensional = z - ((x * Sin(Theta)) + (y * Sin(Phi)))
End Function

Public Function f (x, y, z)
f = Exp(-(x^2 + y^2)) ' Esto es una función de dos variables PUEDE SER CUALQUIERA
End Function

Ahora en el Evento Form_Load()

Private Sub Form_Load()

Theta = Radianes (25)
Phi = Radianes (15)

With Picture_Box

.Scale = (-10, -10)-(10, 10) 'Los Límites del espacio donde se va a graficar

' Los ejes de coordenadas

.Line (X_Bidimensional(0, 0, 8), Y_Bidimensional(0, 0, 8))-(0, 0) 'Z
.Line (X_Bidimensional(0, 8, 0), Y_Bidimensional(0, 8, 0))-(0, 0) 'Y
.Line (X_Bidimensional(8, 0, 0), Y_Bidimensional(8, 0, 0))-(0, 0) 'X

'La Gráfica de la función

For x = -8 to 8 Step 0.02
For y = -8 to 8 Step 0.5
z= f (x, y, z)
.Line (X_Bidimensional(x, y, z), Y_Bidimensional(x, y, z))-(X_Bidimensional(x, y, z) + 0.1, Y_Bidimensional(x, y, z) + 0.1) , vbBlue
Next
Next

' Ahora se gráfica transversal a la primera vez, para ver la gráfica cuadriculada

For x = -8 to 8 Step 0.5
For y = -8 to 8 Step 0.03
z= f (x, y, z)
.Line (X_Bidimensional(x, y, z), Y_Bidimensional(x, y, z))-(X_Bidimensional(x, y, z) + 0.1, Y_Bidimensional(x, y, z) + 0.1) , vbBlue
Next
Next

End With

End Sub

No se ve profundidad en el dibujo, pero para fines de analísis es bastante útil....
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