Ir al contenido

Gambas/Dibujar

De Wikilibros, la colección de libros de texto de contenido libre.

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"