Go to the first, previous, next, last section, table of contents.

### `open_canvas`, `clear_canvas`, `draw_obj`, `draw_string`

`open_canvas(id[,geometry])`
  :: Opens a canvas, which is a window for drawing objects.
`clear_canvas(id,index)`
  :: Clears a canvas.
`draw_obj(id,index,pointorsegment [,color])`
  :: Draws a point or a line segment on a canvas.
`draw_string(id,index,[x,y],string [,color])`
  :: Draws a character string on a canvas.

return
  0
id, index, color, x, y
  integer
pointorsegment
  list
string
  character string

- These functions are supplied by the OpenXM server ``ox_plot'` (``engine'` on Windows).
- `open_canvas` opens a canvas, which is a window for drawing objecgts. One can specifies the size of a canvas in pixel by supplying geometry option [x,y]. The default size is [`300`,`300`]. This function pushes an integer value onto the stack of the OpenXM server. The value is used to distiguish the opened canvas and one has to pop and maintain the value by `ox_pop_cmo` for subsequent calls of `draw_obj`.
- `clear_canvas` clears a canvas specified by a server id id and a canvas id index.
- `draw_obj` draws a point or a line segment on a canvas specified by a server id id and a canvas id index. If pointorsegment is [x,y], it is regarded as a point. If pointorsegment is [x,y,u,v], it is regarded as a line segment which connects [x,y] and [u,v]. If color is specified, color/65536 mod 256, color/256 mod 256, color mod 256 are regarded as the vaules of Red, Green, Blue (Max. 255) respectively.
- `draw_string` draws a character string string on a canvas specified by a server id id and a canvas id index. The position of the string is specified by [x,y].

    [182] Id=ox_launch_nox(0,"ox_plot");
    0
    [183] open_canvas(Id);
    0
    [184] Ind=ox_pop_cmo(Id);
    0
    [185] draw_obj(Id,Ind,[100,100]);
    0
    [186] draw_obj(Id,Ind,[200,200],0xffff);
    0
    [187] draw_obj(Id,Ind,[10,10,50,50],0xff00ff);
    0
    [187] draw_string(Id,Ind,[100,50],"hello",0xffff00);
    0
    [189] clear_canvas(Id,Ind);
    0

`References`
  section `ox_launch`, `ox_launch_nox`, `ox_shutdown`, section `ox_reset`,`ox_intr`,`register_handler`, section `ox_pop_cmo`, `ox_pop_local`.

Go to the first, previous, next, last section, table of contents.