Si quieres producir algún gráfico en gambas deberías usar el control drawingarea.

Dibujar una Línea

editar

Este pequeño programa dibujará una línea. Tienes que empezar un nuevo proyecto grafico.Toma un formulario como formulario de inicio. Necesitas un control drawingarea y un commandbutton en el formulario para poder empezar.

PUBLIC SUB Button1_Click()
Draw.Begin(DrawingArea1)
Draw.Line(1, 130, 500, 400)
Draw.End
END

Cuando quieras dibujar algunas líneas más, intenta esto:

PUBLIC SUB Form_Open()
DIM B AS Integer 
Draw.Begin(DrawingArea1)
FOR B = 1 TO 200 STEP 10 
 Draw.Line(1, B, 500, B)
NEXT 
Draw.End
END

Más líneas son dibujadas aquí:

PUBLIC SUB Button1_Click()
DIM B AS Integer 
Draw.Begin(DrawingArea1)
' Dibuja una línea horizontal que atraviesa el centro del formulario
Draw.Line (0, ME.Height / 2, ME.Width, ME.Height / 2)
' Dibuja una línea que baja verticalmente por el centro del formulario
Draw.Line (ME.Width / 2, 0,ME.Width / 2, ME.Height)
' Dibuja una línea de la izquina superior izquierda a la esquina inferior derecha
Draw.Line (0, 0,ME.Width, ME.Height)
' Dibuja una línea de la esquina superior derecha a la esquina inferior izquierda
Draw.Line (ME.Width, 0,0, ME.Height)
Draw.End
END

Cuando quieras manipular el ancho de tu línea, guíate en este ejemplo:

PUBLIC SUB Form_Open()
DIM B AS Integer 
Draw.Begin(DrawingArea1)
Draw.Line(10,100, 20, 100)
     FOR B = 1 TO 100 STEP 10 
      Draw.LineWidth=B 
      Draw.Line(10+B,100, 20+B, 100)
     NEXT 
Draw.End
END

Si quieres cambiar el color de tu linea a blanco, prueba este ejemplo:

Draw.Begin(DrawingArea1)
Draw.ForeColor = &HFFFFFF
Draw.Line(1, 130, 500, 400)
Draw.End

El siguiente pequeño ejemplo dibujará un cuadro y lo rellenará con color blanco.

PUBLIC SUB Button1_Click()
Draw.Begin(DrawingArea1)
Draw.FillColor = &HFFFFFF
draw.FillStyle = 1
'draw.ForeColor = &HFFFFFF la línea del borde será también blanco
Draw.Rect (100, 100,200,200)
Draw.End
END

El programa Espiral

editar

Este programa te muestra un buen espiral. No hay coando escalar en Gambas (al menos, no aún). Así que las coordenadas x e y son trandformadas en el programa. El rango del sistema de coordenadas de xmin = -2 a max = 2 y ymin = - a ymax = 2.

Necesitas un Drawingarea y un Commandbutton para hacer este ejemplo.

¿Cómo lo ves? See [1]

El código:

PUBLIC SUB Button1_Click()
DIM dymax AS Integer
DIM dymin AS Integer 
DIM ymax AS Integer
DIM ymin AS Integer
DIM y AS Float
DIM dy AS Float
DIM dyi AS Integer
DIM dxmax AS Integer
DIM dxmin AS Integer 
DIM xmax AS Integer
DIM xmin AS Integer
DIM x AS Float
DIM dx AS Float
DIM dxi AS Integer
DIM k AS Float 
DIM a AS Float 
DIM w AS Float
dymax = DrawingArea1.Height
dymin = 0 
ymax = 2
ymin = -2
dxmax = DrawingArea1.Width
dxmin = 0 
xmax = 2
xmin = -2 
'El eje x es dibujado
FOR x = xmin TO xmax STEP 0.005
y = 0 
dy = CFloat(y - ymin) / (ymax - ymin ) * (dymax - dymin) + dymin 
dx = CFloat(x - xmin) / (xmax - xmin ) * (dxmax - dxmin) + dxmin 
dyi = Fix(dy)
dxi = Fix(dx) 
Draw.Begin(DrawingArea1)
Draw.Point(dxi,DrawingArea1.Height- dyi)
Draw.End
NEXT 
'El eje y es dibujado
FOR y = ymin TO ymax STEP 0.005
x = 0 
dy = CFloat(y - ymin) / (ymax - ymin ) * (dymax - dymin) + dymin 
dx = CFloat(x - xmin) / (xmax - xmin ) * (dxmax - dxmin) + dxmin 
dyi = Fix(dy)
dxi = Fix(dx) 
Draw.Begin(DrawingArea1)
Draw.Point(dxi,DrawingArea1.Height- dyi)
Draw.End
NEXT 
'Aquí empieza el espiral
FOR k = -100 TO 150 STEP 0.5
a = 0.97
'Distancia de 0,0 al punto
w = 0.15
'Ángulo bajo el cual el punto es visto del original
a = a ^k 
w = w * k 
x = a * Cos(w)
'la coordenada x de cada punto
y = a * Sin(w)
'la coordenada y de cada punto
dy = CFloat(y - ymin) / (ymax - ymin ) * (dymax - dymin) + dymin 
dx = CFloat(x - xmin) / (xmax - xmin ) * (dxmax - dxmin) + dxmin 
dyi = Fix(dy)
dxi = Fix(dx) 
Draw.Begin(DrawingArea1)
Draw.Point(dxi,DrawingArea1.Height- dyi)
Draw.End
NEXT
END

Retrieved from "http://en.wikibooks.org/w/index.php?title=Gambas/Graphics&oldid=1359953"