Node: Drawing and Filling Paths, Next: Labelling Paths, Previous: Applying Transformations to Paths, Up: Path Reference
void draw ([const Color& ddraw_color = *Colors::default_color , [const string ddashed = "", [const string ppen = "", [Picture& picture = current_picture ]]]])
|
const virtual function |
void draw (Picture& picture, [const Color& ddraw_color = *Colors::default_color, [string ddashed = "", [string ppen = ""]]]) | const Virtual function |
Allocates a copy of the Path on the free store, puts a pointer to
the copy on picture.shapes , sets
its fill_draw_value to DRAW , and
the values of its
draw_color , dashed , and pen according to the
arguments.
The second version is convenient for passing a
All of the arguments to Point A; Point B(2); Point C(3, 3); Point D(1, 2); Point E(-1, 1); Path p("..", true, &A, &B, &C, &D, &E, 0); p.draw();
The arguments:
|
void draw_help ([const Color& ddraw_color = *help_color, [string ddashed = help_dash_pattern, [string ppen = "", [Picture& picture = current_picture ]]]])
|
const function |
void draw_help (Picture& picture, [const Color& ddraw_color = *help_color , [string ddashed = help_dash_pattern , [string ppen = ""]]])
|
const function |
This functions are for drawing help lines.
They are like draw() , except that draw_help() returns immediately,
if do_help_lines (a static data member in
Path ) is false .
Also, the defaults for ddraw_color and
ddashed differ from those for draw() .
|
void drawarrow ([const Color& ddraw_color = *Colors::default_color , [string ddashed = "", [string ppen = "", [Picture& picture = current_picture ]]]])
|
const virtual function |
void drawarrow (Picture& picture, [const Color& ddraw_color = *Colors::default_color , [string ddashed = "", [string ppen = ""]]])
|
const virtual function |
Like draw() , except that the MetaPost command drawarrow is
written to out_stream when picture
is output.
The second version is convenient for passing a Picture argument
without having to specify all of the other arguments.
Point m; Point n(2, 2); m.dotlabel("$m$", "bot"); n.dotlabel("$n$"); m.drawarrow(n);
|
void draw_axes ([real dist = 2.5, [string pos_x = "bot", [string pos_y = "lft", [string pos_z = "bot", [const Color& ddraw_color = *Colors::default_color , [const string ddashed = "", [const string ppen = "", [const Point& shift_x = origin , [const Point& shift_y = origin , [const Point& shift_z = origin , [Picture& picture = current_picture ]]]]]]]]]]])
|
Non-member function |
void draw_axes (const Color& ddraw_color, [real dist = 2.5, [string pos_x = "bot", [string pos_y = "lft", [string pos_z = "bot", [const string ddashed = "", [const string ppen = "", [const Point& shift_x = origin , [const Point& shift_y = origin , [const Point& shift_z = origin , [Picture& picture = current_picture ]]]]]]]]]])
|
Non-member function |
These functions draw lines centered on the origin, and ending in arrows in the
directions of the positive x,
y, and z-axes, and labels them with the appropriate letters.
draw_axes() is used in
many of the figures in this handbook. It can be helpful in determining
whether a Focus has a good "up " direction.
See Focus Reference; Data Members.
In the first version, all of the arguments are optional. In the second
version, ddraw_color is required and has been moved to the front
of the argument list. This version is often convenient, when a
The arguments:
|
void fill ([const Color& ffill_color = *Colors::default_color , [Picture& picture = current_picture ]])
|
const function |
void fill (Picture& picture, [const Color& ffill_color = *Colors::default_color ])
|
Function |
Allocates a copy of the The second version is convenient for passing a
The arguments are similar to those of p.fill(gray);
|
void filldraw ([const Color& ddraw_color = *Colors::default_color , [const Color& ffill_color = *Colors::background_color , [string ddashed = "", [string ppen = "", [Picture& picture = current_picture ]]]]])
|
const function |
void filldraw (Picture& picture, [const Color& ddraw_color = *Colors::default_color , [const Color& ffill_color = *Colors::background_color , [string ddashed = "", [string ppen = ""]]]])
|
const function |
Allocates a copy of the Path on the free store, puts a pointer to
the copy onto picture.shapes , sets
its fill_draw_value to FILLDRAW ,
its draw_color and fill_color to
* ddraw_color and * ffill_color , respectively,
its dashed to ddashed, and its pen
to ppen.
The second version is convenient for passing a
The arguments are similar to those of 3DLDF's p.filldraw(black, gray, "", "pencircle scaled 2mm");
It can often be useful to draw the outline of a default_focus.set(3, 0, -10, 3, 10, 10, 10); Point p[8]; p[0] = p[1] = p[2] = p[3] = p[4] = p[5] = p[6] = p[7].set(-1,-1, 5); p[1] *= p[2] *= p[3] *= p[4] *= p[5] *= p[6] *= p[7].rotate(0, 0, 45); p[2] *= p[3] *= p[4] *= p[5] *= p[6] *= p[7].rotate(0, 0, 45); p[3] *= p[4] *= p[5] *= p[6] *= p[7].rotate(0, 0, 45); p[4] *= p[5] *= p[6] *= p[7].rotate(0, 0, 45); p[5] *= p[6] *= p[7].rotate(0, 0, 45); p[6] *= p[7].rotate(0, 0, 45); p[7].rotate(0, 0, 45); Path r0("..", true, &p[0], &p[1], &p[2], &p[3], &p[4], &p[5], &p[6], &p[7], 0); r0.filldraw(black, light_gray); r0.scale(2, .5); r0.shift(0, 0, -2.5); r0.filldraw(black, gray); r0.scale(.25, 3); r0.shift(0, 0, -2.5); r0.filldraw();
|
void undraw ([string ddashed = "", [string ppen = "", [Picture& picture = current_picture ]]])
|
Function |
void undraw (Picture& picture, [string ddashed = "", [string ppen = ""]]) | Function |
Allocates a copy of the Path on the free store, puts a pointer to
it on picture.shapes , sets
its fill_draw_value to UNDRAW , and
the values of its
dashed and pen according to the
arguments.
The second version is convenient for passing a
This function "undraws" a Undrawing is useful for removing a portion of a Point P0(1, 1); Point P1(2, 1); Point P2(2, 3); Point P3(-1, 1); Path p("--", false, &origin, &P0, &P1, &P2, &P3, 0); p.draw(black, "", "pencircle scaled 3mm"); p.undraw("", "pencircle scaled 1mm");
|
void unfill ([Picture& picture = current_picture ])
|
Function |
Allocates a copy of the Path on the free store, puts a pointer to
it on picture.shapes and sets
its fill_draw_value to UNFILL
This function is useful for removing a portion of a filled region. Point pt[4]; pt[0].set(-2, -2); pt[1].set(2, -2); pt[2].set(2, 2); pt[3].set(-2, 2); Path p("--", true, &pt[0], &pt[1], &pt[2], &pt[3], 0); p.draw(); p.dotlabel(); p.filldraw(black, gray); p.scale(.5, .5); p.unfill();
|
void unfilldraw ([const Color& ddraw_color = *Colors::background_color , [string ddashed = "", [string ppen = "", [Picture& picture = current_picture]]]])
|
Function |
void unfilldraw (Picture& picture, [const Color& ddraw_color = *Colors::background_color , [string ddashed = "", [string ppen = ""]]])
|
Function |
Allocates a copy of the Path on the free store, puts a pointer to
it on picture.shapes , sets
its fill_draw_value to UNFILLDRAW , and
the values of its
draw_color , dashed , and pen according to the
arguments. While the default for ddraw_color is
*Colors::background_color , any other Color can be used,
so that unfilldraw() can unfill a Path and draw an outline
around it.
The second version is convenient for passing a
This function is similar to Point pt[6]; pt[0].set(-2, -2); pt[1].set(0, -3); pt[2].set(2, -2); pt[3].set(2, 2); pt[4].set(0, 3); pt[5].set(-2, 2); Path p("--", true, &pt[0], &pt[1], &pt[2], &pt[3], &pt[4], &pt[5], 0); p.fill(gray); p.scale(.5, .5); p.unfilldraw(black, "", "pensquare xscaled 3mm");
|
Hobby, A User's Manual for MetaPost, p. 32.
Knuth, The METAFONTbook, Chapter 4, p. 21ff. Hobby, A User's Manual for MetaPost, p. 32.
The usual interpretation of ""
as a
position argument to a
labelling command would be to put it directly onto *(Label.pt)
,
which in this case would put it onto the arrowhead. Since this
will probably never be desirable, I've decided to use ""
to
suppress drawing axes. Formerly, draw_axes()
used three
additional arguments for this purpose.