Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Gambas/Graphics

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Back to Gambas If you want to produce some graphics in gambas you should get used to the drawingarea control. Draw a Line This little program will draw a line. You have to start a new graphics project. You take a form as your start form. You need a drawingarea and a commandbutton on the form to get it going. PUBLIC SUB Button1_Click() Draw.Begin(DrawingArea1) Draw.Line(1, 130, 500, 400) Draw.End END When you want to draw some more lines, then try this example: 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 Some other lines are drawn here: PUBLIC SUB Button1_Click() DIM B AS Integer Draw.Begin(DrawingArea1) ' Draws a line horizontally across the centre of the form Draw.Line (0, ME.Height / 2, ME.Width, ME.Height / 2) ' Draws a line vertically down the centre of the form Draw.Line (ME.Width / 2, 0,ME.Width / 2, ME.Height) ' Draws a line from the top left, to the bottom right Draw.Line (0, 0,ME.Width, ME.Height) ' Draws a line from the top right, to the bottom left Draw.Line (ME.Width, 0,0, ME.Height) Draw.End END When you want to manipulate the width of your line , then try this example: 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 If you want to change the color of your line to white, then try this example: Draw.Begin(DrawingArea1) Draw.ForeColor = &HFFFFFF Draw.Line(1, 130, 500, 400) Draw.End The next small example will draw a box and fill it with white color. PUBLIC SUB Button1_Click() Draw.Begin(DrawingArea1) Draw.FillColor = &HFFFFFF draw.FillStyle = 1 'draw.ForeColor = &HFFFFFF the outline will be white also Draw.Rect (100, 100,200,200) Draw.End END The Spiral Program This program shows you a nice spiral. There is no scale command in Gambas (at least, not yet). Therefore the x and y coordinates are transformed in the program. The coordinate system ranges from xmin = - 2 to xmax = 2 and ymin = - 2 to ymax = 2. You need a Drawingarea and a Commandbutton to get the example going. How does this look ? See The code: 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 'x-axis is drawn 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 'y - Axis is drawn 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 'Here the spiral starts FOR k = -100 TO 150 STEP 0.5 a = 0.97 'Distance from 0,0 to the point w = 0.15 'Angle under whiche the point is seen from the origin a = a ^k w = w * k x = a * Cos(w) 'x coordinate of each point y = a * Sin(w) 'y coordinate of each point 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