Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: zerofive en 11 Septiembre 2006, 06:16 am



Título: Graficos
Publicado por: zerofive en 11 Septiembre 2006, 06:16 am
Prometi a mi colegio que entregaria un trabajo de graficos.
Pense que sabia hacerlo.Pero no
no se que hacer !!! :huh:
haci que  decide buscar ayuda
estoy tratando hace un monton un trabajo
sobre un programa que haga graficos de cordenadas de X e Y
logre poco con un libro de programación que tengo.pero no logre lo que buscaba.Ayudenme porfass :-( :-( !!!
es un programita que dibuja en un picturebox graficos.
esto es lo que saque del libro:como lo saque del libro y estoy muy desesperado no pude decifrarlo por eso no tiene comentarios.perdonen :-( :-( :-( :-(
Citar
Option Explicit
Dim X0 As Integer
Dim X1 As Integer
Dim X As Single
Dim Y As Single
Dim c
Dim PosX As Integer
Dim PosY As Integer
Private Sub cmdDibujar_Click()
PosX = 0
PosY = Picture1.Height / 2
X0 = Val(lblX0)
X1 = Val(lblX1)
c = 1
If X0 = 0 Then X0 = 1
Picture1.DrawWidth = 2
For X = X0 To X1 Step c
Y = -Y * 4: Y = Y / Picture1.Width + PosY: PosX = X + (Picture1.Width / 2)
Picture1.PSet (1 + PosX, 1 + Y)
Next X
End Sub

Private Sub Form_Activate()
Picture1.DrawWidth = 1
Picture1.Line (0, Picture1.Height / 2)-(Picture1.Width, Picture1.Height / 2)
Picture1.Line (Picture1.Width / 2, 0)-(Picture1.Width / 2, Picture1.Height)
End Sub

Private Sub HSX1_Change()
lblX1 = HSX1.Value
End Sub

Private Sub HSX0_Change()
lblX0 = HSX0.Value
End Sub



Título: Re: Graficos
Publicado por: Hans el Topo en 11 Septiembre 2006, 14:07 pm
no te entendi... que quieres que haga lineas simplemente?

o cuadrados circulos rectangulos...?¿




Título: Re: Graficos
Publicado por: zerofive en 11 Septiembre 2006, 14:33 pm
perdon por no aclarar. si que dibuje lineas con las distintas funciones matematicas
por ej:
Y = X * 4 : lineas rectas
Y = X ^ 2 : lineas parabolicas
etc 


Título: Re: Graficos
Publicado por: Hans el Topo en 11 Septiembre 2006, 17:18 pm
perdon por no aclarar. si que dibuje lineas con las distintas funciones matematicas
por ej:
Y = X * 4 : lineas rectas
Y = X ^ 2 : lineas parabolicas
etc 

hazlo con puntitos, has hecho alguna vez el teorema de la esfera de radio uno para sacar el valor de pi?

esto seria algo parecido pero con la ecuación que le envies


Título: Re: Graficos
Publicado por: zerofive en 11 Septiembre 2006, 18:03 pm
no la verdad que nunca he visto ese teorema!!
Buscare informacón grax


Título: Re: Graficos
Publicado por: Hans el Topo en 12 Septiembre 2006, 00:28 am
el teorema dice lo siguiente...

Una circunferencia centrada en el origen de coordenadas y de radio 1 tiene como ecuación
        x al cuadrado + y al cuadrado=1


la cosa esta en k eso no te interesa en absoluto... sino que tienes que dar valores a x y obtendras muchas coordenadas que podrás marcar con puntitos
       
Código:
objeto.pset(x,y),color
cuantos más puntitos saques más juntita te quedará la linea


espero te sirva de ayuda...


Título: Re: Graficos
Publicado por: zerofive en 12 Septiembre 2006, 03:05 am
no sabes como me sirvio tu ayuda.
experimentare
eso si, como hago para unir con flechas los puntos


Título: Re: Graficos
Publicado por: Hans el Topo en 12 Septiembre 2006, 14:06 pm
yo te recomiendo poner puntos muy cercanos asi te formarán la linea ellos, pero si quieres tirar puntos y unirlos con lineas  se hace con algo asi... ahora no me acuerdo, pero lo dicho yo lanzaria los puntos cercanos (alfin y al cabo una linea es un conjunto de puntos)

line x1,y1 x2,y2


Título: Re: Graficos
Publicado por: zerofive en 15 Septiembre 2006, 21:28 pm
no logro que en el grafico me situe bien los puntos y las lineas ,lo hace en el sector inferior derecho y lo tendria que hacer en el superior derecho
les doy el code:
con comentarios ;D
Citar
Option Explicit
Dim X As Integer    'Declaro X
Dim Y As Integer    'Declaro Y
Dim X1 As Integer   'Declaro X1
Dim Y1 As Integer   'Declaro Y1
Dim PosX As Integer 'Declaro PosX que es la posición central de izquierda derecha
Dim PosY As Integer 'Declaro PosY que es la posición central de arriva a abajo
Private Sub Command1_Click()
On Error Resume Next
PosX = Picture1.Width / 2
PosY = Picture1.Height / 2
X = Text1.Text
X1 = Text2.Text
Y = Label1.Caption
Y1 = Label2.Caption
Picture1.PSet (Picture1.Width / 2 + X, Picture1.Height / 2 + Y)   'Situa un punto en la coordenada dada en el textbox de X
Picture1.PSet (Picture1.Width / 2 + X1, Picture1.Height / 2 + Y1) 'Situa un punto en la coordenada dada en el textbox de X1
End Sub
Private Sub Command2_Click() 'Boton para trazar las lineas
Picture1.Line (Picture1.Width / 2 + X, Picture1.Height / 2 + Y)-(Picture1.Width / 2 + X1, Picture1.Height / 2 + Y1)
Picture1.Line (Picture1.Width / 2 + 0, Picture1.Height / 2 + 0)-(Picture1.Width / 2 + X1, Picture1.Height / 2 + Y1)
End Sub
Private Sub Form_Activate() 'Dibuja dos lineas centrales
Picture1.DrawWidth = 1
Picture1.Line (0, Picture1.Height / 2)-(Picture1.Width, Picture1.Height / 2)
Picture1.Line (Picture1.Width / 2, 0)-(Picture1.Width / 2, Picture1.Height)
End Sub
Private Sub Form_Load()
Combo1.AddItem "Funcion Lineal" 'Da opciones de que tipo de formula se quiere
Combo1.AddItem "Funcion Linea Parabolica"
List1.AddItem "Ej: Y = pendiente * 5 + 17: Lineal"             'Te enseña que tipo de formula hay
List1.AddItem "Ej: Y = X ^ 2                     : Parabolica"
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer) 'Corresponde a X
If KeyAscii = 13 Then 'Si en la caja de texto se presiona enter...
X = Text1.Text
If Combo1.Text = "Funcion Lineal" Then  'Si queres la funcion Lineal
Label1.Caption = Text3.Text * X + Text4.Text  'La ecuación que hace es Y = X * 4
End If
If Combo1.Text = "Funcion Linea Parabolica" Then 'Si queres la funcion de linea parabolica
Label1.Caption = X ^ 2 'La ecuacion que hace es Y = X ^ 2
End If
End If
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer) 'Idem a el Text1 pero con el X1
If KeyAscii = 13 Then
X1 = Text2.Text
If Combo1.Text = "Funcion Lineal" Then
Label2.Caption = Text3.Text * X1 + Text4.Text
End If
If Combo1.Text = "Funcion Linea Parabolica" Then
Label2.Caption = X1 ^ 2
End If
End If
End Sub
Si me logran ayudar Graxxias ;)


Título: Re: Graficos
Publicado por: NYlOn en 15 Septiembre 2006, 22:56 pm
Es que los controles no tienen un sistema de coordenadas comun, mira:
Código:
                  Y
                 |
                 |
                 |
                 |
                 |
                 |
-X _______________________ X
                 |
                 |
                 |
                 |
                 |
                 |
                  -Y

Eso es un sistema de coordenadas comun. Ahora el de los controles es algo asi:
Código:
                  -Y
                 |
                 |
                 |
                 |
                 |
                 |
-X _______________________ X
                 |
                 |
                 |
                 |
                 |
                 |
                  Y

Es como que el eje Y se invierte, es algo raro xD. Asi que adapta tu funcion a ese sistema. Espero que se haya entendido, saludos.-