NAME
Graphics::Fig - xfig library
SYNOPSYS
Objects
arc(radius, angle)
arc(points)
arc({ center => [ xc, yc ], r => length, angle => angle, rotation => rotation, ... })
arc({ center => [ xc, yc ], d => length, angle => angle, rotation => rotation, ... })
arc({ center => [ xc, yc ], point => [ x1, y1 ], angle => angle, ... })
arc({ points => [[ x1, y1 ], [ x3, y3 ]], angle => angle, ... })
arc({ points => [[ x1, y1 ], [ x2, y2 ], [ x3, y3 ]], ... })
arcto(distance, heading, angle)
arcto(points)
arcto({ center => [ xc, yc ], angle => angle, ... })
arcto({ point => [ x3, y3 ], angle => angle, ... })
arcto({ points => [[ x2, y2 ], [ x3, y3 ]], ... })
box(width, height)
box(points)
box({ center => [ xc, yc ], width => width, height => height, ... })
box({ points => [[ x1, y1 ], [ x2, y2 ]], ... })
circle(d)
circle(points)
circle({ center => [ xc, yc ], d => length, ... })
circle({ center => [ xc, yc ], r => length, ... })
circle({ center => [ xc, yc ], point => [ x, y ], ... })
circle({ points => [[ x1, y1 ], [ x2, y2 ], [ x3, y3 ]], ... })
ellipse(a, b)
ellipse(a, b, rotation)
ellipse(points)
ellipse({ center => [ xc, yc ], points => [[ x1, y1 ], [ x2, y2 ]], rotation => rotation, ... })
ellipse({ center => [ xc, yc ], points => [[ x1, y1 ], [ x2, y2 ], [ x3, y3 ]], ... })>
ellipse({ points => [[ x1, y1 ], [ x2, y2 ], [ x3, y3 ], [ x4, y4 ], [ x5, y5 ]], ... })>
lineto(distance, heading)
lineto(points)
lineto({ distance => length, heading => heading, ... })
lineto({ point => [ x2, y2 ], ... })
lineto({ points => [[ x2, y2 ], [ x3, y3 ], ... ], ... })
picture(filename)
picture(filename, width)
picture(filename, width, height)
picture(filename, points)
picture({ filename => filename, width => width, height => height, ... })
picture({ filename => filename, points => [[ x1, y1 ], [ x2, y2 ]], ... })
polygon(n, radius)
polygon(points)
polygon({ center => [ xc, yc ], r => length, rotation => rotation, n => n-sides, ... })
polygon({ center => [ xc, yc ], point => [ x1, y1 ], n => n-sides, ... })
polygon({ points => [[ x1, y2 ], [ x2, y2 ], [ x3, y3 ], ... ], ... })
polyline(points)
polyline({ points => [[ x1, y1 ], [ x2, y2 ], ... ], ... })
spline(points)
spline({ points => [[ x1, y2 ], [ x2, y2 ], [ x3, y3 ], ... ], ... })
splineto(distance, heading)
splineto(points)
splineto(distance => length, heading => heading, ... })
splineto(points => [[ x2, y2 ], [ x3, y3 ], ... ], ... })
text(text)
Control
new({ global-parameters... })
options({ global-parameters... })
begin({ global-parameters... })
end(action)
end({ action => "merge" | "group" | "discard", ... })
moveto(distance, heading)
moveto(point)
moveto({ distance => length, heading => heading, ... })
moveto({ point => [ x, y ], ... })
getposition()
translate(offset)
translate({ offset => [ dx, dy ], ... })
rotate(rotation)
rotate({ rotation => rotation, ... })
scale(scale)
scale({ scale => scale<,> ... })
scale({ scale => [ x-scale, y-scale ], ... })
getbbox()
save(filename)
save({ filename => filename, ... })
export(filename)
export({ filename => filename, ... })
DESCRIPTION
Graphics::Fig is a drawing library that produces xfig save files. This version is based on xfig v3.2.
Simple Example
my $fig = Graphics::Fig->new();
$fig->moveto([ 1, 1 ]);
$fig->lineto([ 4, 1 ]);
$fig->lineto([ 4, 3 ]);
$fig->lineto([ 1, 3 ]);
$fig->lineto([ 1, 1 ]);
$fig->export("example.pdf");
The first line of the example creates a Fig object and establishes a drawing environment. The moveto command moves the starting position to [ 1, 1 ]. The next four lines draw a rectangle from the starting position. The final line exports the drawing to pdf format.
Parameter Passing
All functions in the library accept named parameters. If the last parameter is a reference to a hash, the hash is interpeted as a set of parameter name / value pairs. In addition, most functions also accept a few positional parameters. For example:
$fig->lineto([ 3, 2 ]); # positional
is equivalent to:
$fig->lineto({ point => [ 3, 2 ] }); # named
You may mix both positional and named parameters in the same function. For example:
$fig->lineto([ 3, 2 ], { color => "red" }); # mixed
is equivalent to:
$fig->lineto({ point => [ 3, 2 ], color => "red" });
This function draws a line segment from the current position to point [ 3, 2 ] using a pen color of red.
Many parameters take default values from the current drawing environment. See Global Parameters.
Functions
- new()
- new({ global-parameters... })
-
The new function constructs a new Fig object and establishes the initial drawing environment. All other functions in the library are methods of the Fig object, thus this function must be called first.
The new function accepts an optional list of global parameters that set defaults for other functions (see Global Parameters below).
- arc(radius)
- arc(radius, angle)
- arc(points)
-
The arc function draws an arc from a starting point, through a control point, to a final point. The arc can be specified in any of the following ways:
- center, radius|diameter, angle|Θ, rotation, [controlAngle]
-
Center and either radius or diameter give the location and size of the associated circle. Angle (alternatively Θ) is the central angle of the arc. Rotation is the angle of the starting point relative to the x-axis.
An optional controlAngle parameter places the control point. If not given, the control point is placed at the midpoint along the arc.
The direction of the arc (clockwise or counterclockwise) is inferred from the sign of angle or can be set explicitly using direction. See parameters below.
- center, starting point, angle, [controlAngle]
-
The starting point can be given instead of radius and rotation.
- starting point, final point, angle, [controlAngle]
-
The starting point and final point can be given instead of center, radius and rotation.
- starting point, control point, final point
-
Starting point, control point and final point uniquely describe the arc.
Parameters
- angle|Θ (degrees, default 90)
-
Angle is the central angle of the arc, i.e. the angle formed by starting point, center and final point.
- center = point (default: current position)
-
Center is the origin of the associated circle. If not given, center defaults to the current position.
- controlAngle (degrees, default angle/2)
-
Control angle is the angle between the starting point and middle point of the arc. The control point appears as a movable point in xfig. If not given, control angle defaults to angle divided by two.
- diameter|d = length
-
Diameter is the diameter of the associated circle. See radius.
- direction = "clockwise"|"cw" or "counterclockwise"|"ccw"
-
Direction specifies whether the arc is drawn counterclockwise or clockwise from the starting point to the final point. If not given, the direction is inferred from the sign of angle, counterclockwise if angle is positive and clockwise if angle is negative. This parameter is particularly useful when using the arrow modes.
- points = points
-
Points specifies one, two or three points along the arc: start, start and final, or start, control and final.
- radius|r = length
-
Radius describes the radius of the associated circle. See diameter.
- rotation (degrees)
-
Rotation is the angle in degrees from the center to the first point relative to the x axis. If neither rotation nor points is given, rotation defaults to zero.
- subtype = "open" (default) | "closed"
-
Subtype selects between a simple arc (open) or a pie wedge, (closed). Closed can alternatively be specified as "pie" or "pie-wedge".
- areaFill = areaFill
- arrowHeight = length
- arrowMode = "none" | "forw[ard]" | "back[ward]" | "both"
- arrowStyle
- arrowThickness = length
- arrowWidth = length
- capStyle = "butt" | "round" | "projecting"
- color = color
- depth = depth
- fillColor = color
- lineStyle
- lineThickness = length
- position = point
- styleVal = length
- units = units
-
See Global Parameters.
- arcto(distance, heading)
- arcto(distance, heading, angle)
- arcto(points)
-
The arcto function draws an arc from the current position, through a control point, to a final point then moves the current position to the final point. Arcto can be specified in any of the following ways:
- distance, heading, angle, [controlAngle]
-
Distance and heading describe the final point relative to the current point, where distance is in the current unit and heading is in degrees, with zero aligned on the x-axis. Angle is the central angle of the arc.
The optional controlAngle places the control point. See arc.
Use a positive angle for a counterclockwise arc, a negative angle for a clockwise arc, or specify the direction explicitly using the direction parameter.
- center, angle, [controlAngle]
-
The final point can be calculated from the center of the associated circle and central angle of the arc.
- final point, angle, [controlAngle]
-
The final point can be given directly.
- control point, final point
-
Control point and final point uniquely describe the arc.
Parameters
- angle|Θ (degrees, default 90)
-
Angle is the central angle of the arc, i.e. the angle formed by starting point, center and final point. Angle can alternatively be written as Θ.
- center = point
-
Center is the origin of the associated circle.
- controlAngle (degrees, default angle/2)
-
Control angle is the angle between the starting point and middle point of the arc. This control point appears as a movable point in xfig. If not given, control angle defaults to angle divided by two.
- direction = "clockwise"|"cw" or "counterclockwise"|"ccw"
-
Direction specifies whether the arc is drawn counterclockwise or clockwise from the starting point to the final point. If not given, the direction is inferred from the sign of angle, counterclockwise if angle is positive and clockwise if angle is negative. This parameter is particularly useful when using the arrow modes.
- distance = length
-
Distance is the straight-line distance from the current position to the final point.
- heading (degrees)
-
Heading is the angle in degrees of the final point relative to the current position.
- points = points
-
Points specifies one or two points along the arc: final, or control and final.
- subtype = "open" (default) | "closed"
-
Selects between a simple arc (open) or a pie wedge, (closed). Closed can alternatively be specified as "pie" or "pie-wedge".
- areaFill = areaFill
- arrowHeight = length
- arrowMode = "none" | "forw[ard]" | "back[ward]" | "both"
- arrowStyle
- arrowThickness = length
- arrowWidth = length
- capStyle = "butt" | "round" | "projecting"
- color = color
- depth = depth
- fillColor = color
- lineStyle
- lineThickness = length
- position = point
- styleVal = length
- units = units
-
See Global Parameters.
- begin({ global-parameters })
-
The begin function pushes a new empty drawing context with given global parameters. Any parameters not specified default to the values in the parent drawing context. See end.
Drawing contexts are useful for drawing a series of objects with shared default parameters and for creating groups.
- end()
- end(action)
-
The end function leaves a drawing context started by a matching begin. Based on the given action, objects created within the sub-context are either merged into the parent context, grouped and added to the parent context or discarded. The default action is "merge".
Parameters
- action = merge | group | discard
-
An action of merge (default) merges all objects created in the sub-environment into the parent environment. An action of group groups the objects and adds the group to the parent environment. An action of discard discards all objects created in the sub-environment. The discard option can be useful if you called save while in the sub-environment.
- grid = length
-
When creating a group, this option expands the corners of the group as needed to snap to a grid of given resolution. If not given, the corners of the group are defined by the bounding box of the contained objects.
- position = point
- units = units
-
See Global Parameters.
- box(width, height)
- box(points)
-
The box function draws a rectangular box specified by either of:
- center, width, height
-
Center is the central point of the box. Width and height are the dimensions of the box. If not given, center defaults to the current position.
- two points
-
Two opposite corners describe a box.
Parameters
- center = point (default: current position)
-
Center is the central point of the box. If not given, center defaults to the current position.
- height = length
-
Height is the vertical dimension of the box.
- width = length
-
Width is the horizontal dimension of the box.
- points
-
Two points give the locations of a pair of opposite corners of the box.
- areaFill = areaFill
- color = color
- cornerRadius = length
- depth = depth
- fillColor = color
- lineStyle
- lineThickness = length
- position = point
- styleVal = length
- units = units
-
See Global Parameters.
- circle(diameter)
- circle(points)
-
The circle function draws a circle described by any of the following:
- center, radius|diameter
-
Center is the origin point of the circle. Radius or alternatively, diameter is the size of the circle. If not given, center defaults to the current position.
- center, starting point
-
Center and a point on the circle can be given instead of radius or diameter. If not given, center defaults to the current position.
- first point, second point, third point
-
Any three non-collinear points uniquely describe a circle.
Parameters
- center = point (default: current position)
-
Center is the origin of the circle. If not given, center defaults to the current position.
- diameter|d
-
Diameter is the diameter of the circle. See radius.
- point|points
-
Points specifies one or three points on the circle: the starting point, or any three non-colinear points.
- radius|r
-
Radius describes the radius of the circle. See diameter.
- rotation (degrees)
-
Rotation is the angle from center to the starting point relative to the x-axis. The starting point appears as a movable point in xfig.
- subtype = "radius" | "diameter"
-
Subtype determines whether xfig describes the circle by center and one control point on the circle (radius), or or by two control points on opposite sides of the circle (diameter). If not given, the subtype is automatically inferred from the other parameters.
- areaFill = areaFill
- color = color
- depth = depth
- fillColor = color
- lineStyle
- lineThickness = length
- position = point
- styleVal = length
- units = units
-
See Global Parameters.
- ellipse(a, b)
- ellipse(a, b, rotation)
- ellipse(points)
-
The ellipse function draws an ellipse specified in any of the following ways:
- center, a, b, rotation
-
Center, a and b give the origin of the ellipse and the lengths of the two semi axes. Rotation is the angle between the first semi axis and the x axis. If center is not given, it defaults to the current position.
- center, two points, rotation
-
Any two points on the ellipse not colinear with the center can be given instead of the semi axes. If center is not given, center defaults to the current position. If rotation is not given, it defaults to the angle of the first point.
- center, three points
-
Center and any three points on the ellipse not colinear with the center or with each other can be given instead of rotation. If center is not given, it defaults to the current position.
- five points
-
Any five non-colinear points uniquely describe the ellipse.
Parameters
- a = length, b = length
-
The a and b parameters give the lenghts of the two semi axes. While a is normally the major semi axis, it's not an error for it to be smaller than b.
- center = point (default: current position)
-
Center is the origin of the ellipse. If center is not given, it defaults to the current position.
- points = points
-
Points describes two, three or five non-colinear points along the ellipse.
- rotation (degrees)
-
Rotation is the angle of the first axis of the ellipse relative the x axis.
Rotation is the angle from center to the starting point relative to the x-axis. The starting point appears as a movable point in xfig.
- subtype = "radii" | "diameters"
-
Subtype determines whether xfig describes the ellipse by center and the control points of the two semi axes (radii), or by the four control points of the full axes (diameters). If not given, the subtype is automatically inferred from other parameters.
- areaFill = areaFill
- color = color
- depth = depth
- fillColor = color
- lineStyle
- lineThickness = length
- position = point
- styleVal = length
- units = units
-
See Global Parameters.
- export(filename)
-
The export function exports all objects in the current environment to a given graphics format.
Parameters
- exportFormat|format
-
Specify the output file format, overriding the output filename extension. The list of supported formats depends on version and compile time options of the fig2dev program. Typical supported graphics formats are: "box", "cgm", "dxf" (AutoCAD drawing exchange format), "eepic", "eepicemu", "emf", "epic", "eps", "gbx" (Gerber), "ge", "gif", "ibmgl", "jpeg", "latex", "map" (HTML image map), "mf" (MetaFont), "mmp" (Multi-MetaPost), "mp" (MetaPost), "pcx", "pdf", "pdftex", "pdftex_t", "pic", "pictex", "png", "ppm", "ps", "pstex", "pstex_t", "pstricks", "ptk", "shape" (LaTeX shaped paragraphs), "sld" (AutoCAD slide format), "svg", "textyl", "tiff", "tk", "tpic", "xbm" and "xpm".
- exportOptions|options
-
Provide additional command-line options to the fig2dev program. The value must be a reference to an array of strings. Example: [ "-f", "Roman" ].
- filename
-
Specify the filename of the output file. If the exportFormat option is not given, the type is taken from the filename extension.
- comment = string
- pageJustification = "Center" | "Flushleft"
- magnification = (float, percentage)
- multiplePage = "Single" | "Multiple"
- orientation = "Landscape" | "Portrait"
- paperSize = papersize
- position = point
- transparentColor = -2 | -1 | color
- units = units
-
See Global Parameters.
- getbbox()
-
The getbbox function returns a reference to an array of two points giving the bounding box for all objects in the current environment. The return value is of the form [ [ x1, y1 ], [ x2, y2 ] ], where [ x1, y1 ] is the top-left corner and [ x2, y2 ] is the bottom right corner.
Parameters
- getposition()
-
The getposition function returns the current position in the current unit. The return value is a reference to an array of two scalars, [ x, y ]. This array is a copy of the internal position and the caller may modify the returned point without affecting the library.
Parameters
- lineto(distance, heading)
- lineto(points)
-
The lineto function draws a line segment (or series of connected segments) from the current position. Then it moves the current position to the end of the last segment. This object can be given by either of the following:
- distance, heading
-
Distance and heading describe the distance and angle of the next point relative to the current point.
- point|points
-
Given one or more points, the lineto function draws a segment or series of segments passing through each point.
Parameters
- distance = length
-
Distance is the straight-line distance from the current position to the next point.
- heading (degrees)
-
Heading is the angle in degrees of the next point relative to the current position.
- new|detachedLineto = boolean
-
By default, sequences of lineto calls are merged into a single polyline object when possible, i.e. when the position and other parameters are unchanged since the previous call. This behavior is more efficient in terms of number of xfig objects created and it has the benefit of honoring the joinStyle parameter. But when using the arrow modes, it may not be desired because only the final segment receives an arrow.
If the new parameter or global detachedLineto parameter is true, lineto creates a new polyline object even if it could have merged with the previous call. This is useful when using arrow modes.
- point|points
-
One or more points through which the segments should be drawn.
- areaFill = areaFill
- arrowHeight = length
- arrowMode = "none" | "forw[ard]" | "back[ward]" | "both"
- arrowStyle
- arrowThickness = length
- arrowWidth = length
- capStyle = "butt" | "round" | "projecting"
- color = color
- depth = depth
- fillColor = color
- joinStyle = "miter" | "round" | "bevel"
- lineStyle
- lineThickness = length
- position = point
- styleVal = length
- units = units
-
See Global Parameters.
- moveto(distance, heading)
- moveto(points)
-
The moveto function changes the current position. There are two styles:
- distance, heading
-
Distance and heading give the distance and angle of the destination relative to the current position.
- point
-
The new position is given as an absolute point.
Parameters
- distance = length
-
Distance is the distance from the current position to the target position.
- heading (degrees)
-
Heading is the angle in degrees of the target position relative to the current position.
- point = point
-
A single point sets the new absolute position.
- position = point
-
The optional position parameter is sets the current position *before* the moveto function changes it again. When using distance and heading, position overrides the starting point; when using point, position has no effect.
- units = units
-
See Global Parameters.
- options({ global-parameters })
-
The options function sets default options for subsequent functions. See Global Parameters.
- picture(filename)
- picture(filename, width)
- picture(filename, width, height)
- picture(points)
-
The picture function inserts an embedded picture into the drawing. There are several forms:
- filename, center
- filename, center, width
- filename, center, height
- filename, center, width, height
-
Filename is the image to be inserted. Center is the central point of the picture. If not given, center defaults to the current position. If either width or height is given, the picture is scaled, preserving aspect ratio, to fit the given dimension. If both width and height are given, the picture is scaled to fit both, modifying the aspect ratio if needed.
- filename, two opposite corners
-
Two points describing opposite corners may be given in place of center, width and height. The original top-left corner of the image is placed at the first point; original bottom-right corner is placed the second point.
Parameters
- center = point (default: current position)
-
Center is the central point of the picture. If not given, center defaults to the current position.
- filename
-
Filename is the name of the file containing the image. The following formats are accepted: eps, gif, jpeg, pcx, png, ppm, ps, tiff, xbm and xpm.
- height = length, width = length
-
Height scales the image vertically; width scales the image horizontally.
- points = points
-
Two points are the locations of a pair of opposite corners of the object.
- resolution = xres [yres] [dpi|dpcm|dpm]
-
Resolution specifies the resolution of the image in dots per inch, dots per centimeter or dots per meter. You may describe non-square pixels by specifying both xres and yres. If not given, the picture function tries to automatically determine the resolution from the image. If the resolution cannot be determined, it defaults to 100 dpi.
- areaFill = areaFill
- color = color
- depth = depth
- fillColor = color
- joinStyle = "miter" | "round" | "bevel"
- lineStyle
- lineThickness = length
- position = point
- styleVal = length
- units = units
-
See Global Parameters.
- polygon(n, radius)
- polygon(points)
-
The polygon function draws a polygon described by any of the following:
- center, n, radius, rotation
-
This form draws an n-sided regular polygon. Center is the central point of the polygon. If not given, center defaults to the current position. Radius is the distance from center to each corner. Rotation is the angle from center to the first point relative to the x axis.
- center, n, point
-
You may specify the first point instead of radius and rotation.
- points
-
This form draws an arbitrary closed polygon passing through each point.
Parameters
- center = point (default: current position)
-
Center is the origin of a regular polygon. If not given, center defaults to the current position.
- n
-
N is the number of sides for a regular polygon.
- point|points
-
One point specifies the location of the first corner of a regular polygon. Three or more points specify the corners of an arbitrary polygon.
- radius|r
-
Radius is the distance from the center to each corner of a regular polygon.
- rotation (degrees)
-
Rotation is the angle from center to the first point of a regular polygon relative to the x axis.
- areaFill = areaFill
- color = color
- depth = depth
- fillColor = color
- joinStyle = "miter" | "round" | "bevel"
- lineStyle
- lineThickness = length
- position = point
- styleVal = length
- units = units
-
See Global Parameters.
- polyline(points)
-
The polyline function draws a sequence of interconnected line segments passing through the given points.
Parameters
- points = points
-
Two or more points specify the segments of the object.
- areaFill = areaFill
- arrowHeight = length
- arrowMode = "none" | "forw[ard]" | "back[ward]" | "both"
- arrowStyle
- arrowThickness = length
- arrowWidth = length
- capStyle = "butt" | "round" | "projecting"
- color = color
- depth = depth
- fillColor = color
- joinStyle = "miter" | "round" | "bevel"
- lineStyle
- lineThickness = length
- position = point
- styleVal = length
- units = units
-
See Global Parameters.
- rotate(angle) (degrees)
-
The rotate function rotates all objects in the current drawing context about the given center by the given angle.
Parameters
- center = point
-
Center is the point about which the objects are rotated. If not given, center defaults to the current position.
- rotation (degrees)
-
Rotation is the number of degrees to rotate the objects. A positive rotation is counterclockwise; a negative rotation is clockwise.
- position = point
- units = units
-
See Global Parameters.
- save(filename)
-
The save function saves all objects in the current environment to a file in xfig (.fig) format.
Parameters
- filename
-
Give the filename of the save file. The caller should include the .fig suffix as it is not added automatically.
- comment = string
- pageJustification = "Center" | "Flushleft"
- magnification = (float, percentage)
- multiplePage = "Single" | "Multiple"
- orientation = "Landscape" | "Portrait"
- paperSize = papersize
- position = point
- transparentColor = -2 | -1 | color
- units = units
-
See Global Parameters.
- scale(scale)
-
The scale function scales all objects relative to the given center or current position.
Parameters
- center
-
Center is the point about which all objects are scaled. If not given, center defaults to the current position.
- scale = s | [ u, v ]
-
Scale is the factor by which objects are scaled. The argument may be either a single value to scale with constant aspect ratio, or a reference to an array of two values to scale x and y with different ratios. In some cases, changing the aspect ratio changes the object type. For example, circles become ellipses.
Note that when changing aspect ration, not all objects can be scaled linearly. For example, when changing the aspect ratio of an arc object, the three control points are scaled as specified, but the object remains an arc, i.e. xfig does not have a representation for a section an an ellipse.
- position = point
- units = units
-
See Global Parameters.
- spline(points)
-
The spline function draws a spline described by three or more control points.
Parameters
- points
-
Three or more points are the control points of the spline.
- shapeFactor|shapeFactors
-
When drawing an x-spline (see subtype), you must provide either a single shape factor to be applied to all points, or a vector of shape factors, one entry for each point, to control the smoothness of the curve around the control points. A shape factor of -1.0 is an interpolated spline, 0.0 is a polyline, and +1.0 is an approximated spline. Values closer to zero produce sharper curves; values closer to -1.0 or +1.0 provide smoother curves.
- subtype|splineSubtype
-
The spline object has six subtypes: open-approximated, closed-approximated, open-interpolated, closed-interpolated, open-x and closed-x. The default is "open-approximated".
When using open-x or closed-x, you must include a vector of shapeFactors, one for each control point (see above).
- areaFill = areaFill
- arrowHeight = length
- arrowMode = "none" | "forw[ard]" | "back[ward]" | "both"
- arrowStyle
- arrowThickness = length
- arrowWidth = length
- capStyle = "butt" | "round" | "projecting"
- color = color
- depth = depth
- fillColor = color
- lineStyle
- lineThickness = length
- position = point
- styleVal = length
- units = units
-
See Global Parameters.
- splineto(distance, heading)
- splineto(points)
-
The splineto function draws a spline object, leaving the current position at the final point. The function may be called in either of the following two ways:
- distance, heading
-
Distance and heading give the distance and angle of the next control point relative to the current position.
- point|points
-
Starting at the given position, add the specified control points to the spline.
Note that a valid spline must have at least three control points. If splineto is called only once, giving only two control points, the object becomes a polyline.
Parameters
- distance = length
-
Distance is the straight-line distance from the current position to the next point.
- heading (degrees)
-
Heading is the angle in degrees of the next point relative to the current position.
- new = boolean
-
By default, sequences of splineto calls are merged into a single spline object when possible, i.e. if the position and other parameters are unchanged since the previous call. If the new parameter is true, lineto creates a new spline object even if it could have merged with the previous call. This is useful when using arrow modes.
- point|points
-
Starting at the current position, add the given list of control points to the spline.
- shapeFactor|shapeFactors
-
When drawing an x-spline (see subtype), you must provide either a single shape factor to be applied to all points, or a vector of shape factors, one entry for each point, to control the smoothness of the curve around the control points. A shape factor of -1.0 is an interpolated spline, 0.0 is a polyline, and +1.0 is an approximated spline. Values closer to zero produce sharper curves; values closer to -1.0 or +1.0 provide smoother curves.
- subtype|splineSubtype
-
The spline object has six subtypes: open-approximated, closed-approximated, open-interpolated, closed-interpolated, open-x and closed-x. The default is "open-approximated".
- areaFill = areaFill
- arrowHeight = length
- arrowMode = "none" | "forw[ard]" | "back[ward]" | "both"
- arrowStyle
- arrowThickness = length
- arrowWidth = length
- capStyle = "butt" | "round" | "projecting"
- color = color
- depth = depth
- fillColor = color
- lineStyle
- lineThickness = length
- position = point
- styleVal = length
- units = units
-
See Global Parameters.
- text(text)
-
Format a line of text at the current position.
Parameters
- rotation = rotation (degrees)
-
Rotate the text relative to the x axis.
- text = string
-
Specify a line of text.
- color = color
- depth = depth
- fontFlags = fontFlags
- fontName = fontName
- fontSize = fontSize (1/72nd inch)
- position = point
- textJustification = "left" | "right" | "center"
- units = units
-
See Global Parameters.
- translate(offset)
-
The translate function translates all objects in the current drawing context by the given [ dx, dy ] offset.
Parameters
Global Parameters
The new, options and begin functions take the following global parameters. These parameters provide defaults for subsequent functions.
- areaFill (default "not-filled")
-
Set the area fill pattern (also see fillColor). Valid values are: "not-filled", "black", "shade1" .. "shade19", "tint1" .. "tint19", "full", "saturated", "white", "left-diagonal-30", "right-diagonal-30", "crosshatch-30", "left-diagonal-45", "right-diagonal-45", "crosshatch-45", "horizontal-bricks", "vertical-bricks", "horizontal-lines", "vertical-lines", "crosshatch", "horizontal-right-shingles", "horizontal-left-shingles", "vertical-descending-shingles", "vertical-ascending-shingles", "fish-scales", "small-fish-scales", "circles", "hexagons", "octagons", "horizontal-tire-treads", "vertical-tire-treads".
- arrowHeight = length (default 0.1 inch)
-
Set the height of arrows (see arrowMode). Alternatively, fArrowHeight and bArrowHeight set the height for only forward arrows or only backward arrows, respectively.
- arrowMode = "none" (default) | "forw[ard]" | "back[ward]" | "both"
-
Draw arrows on arc, arcto, lineto, polyline, spline and splineto figures.
- arrowStyle (default "stick")
-
Set the style for arrows (see arrowMode). Valid values are: "stick", "triangle", "filled-triangle", "indented", "filled-indented", "pointed", "filled-pointed", "diamond", "filled-diamond", "circle", "filled-circle", "goblet", "filled-goblet", "square", "filled-square", "reverse-triangle", "filled-reverse-triangle", "left-indented", "right-indented", "half-triangle", "filled-half-triangle", "half-indented", "filled-half-indented", "half-pointed", "filled-half-pointed", "y", "t", "goal", "gallows", "[ m, n ]",
Alternatively, fArrowStyle and bArrowStyle set the style for only forward arrows or only backward arrows, respectively.
- arrowThickness = length (default 0.0125 inch)
-
Set the thickness of arrow lines. Used with arrowMode. Alternatively, fArrowThickness and bArrowThickness set the thickness for only forward arrows or only backward arrows, respectively.
- arrowWidth = length (default 0.05 inch)
-
Set the width of arrows. Used with arrowMode. Alternatively, fArrowWidth and bArrowWidth set the arrow width for only forward arrows or only backward arrows, respectively.
- capStyle = "butt" (default) | "round" | "projecting"
-
Set the endcap style for arc, arcto, lineto, polyline, spline, and splineto.
- color = color (default "black")
-
Set the default pen color for all objects.
- comment = string
-
Set the comment string that appears in the header of the .fig file.
- cornerRadius = length
-
Set the default corner radius for box objects.
- depth = depth (default 50)
-
Set the default layer for all objects. Valid values are 0..999.
- detachedLineto = boolean (default "false")
-
Don't merge adjacent segments of lineto objects. This option is useful when using the arrow modes to show an arrow to every segment.
- exportFormat
-
Specify the output file format, overriding the output filename extension. The list of supported formats depends on version and compile time options of the fig2dev program. Typical supported graphics formats are: "box", "cgm", "dxf" (AutoCAD drawing exchange format), "eepic", "eepicemu", "emf", "epic", "eps", "gbx" (Gerber), "ge", "gif", "ibmgl", "jpeg", "latex", "map" (HTML image map), "mf" (MetaFont), "mmp" (Multi-MetaPost), "mp" (MetaPost), "pcx", "pdf", "pdftex", "pdftex_t", "pic", "pictex", "png", "ppm", "ps", "pstex", "pstex_t", "pstricks", "ptk", "shape" (LaTeX shaped paragraphs), "sld" (AutoCAD slide format), "svg", "textyl", "tiff", "tk", "tpic", "xbm" and "xpm".
- exportOptions
-
Provide additional command-line options to the fig2dev program. The value must be a reference to an array of strings. Example: [ "-f", "Roman" ].
- fillColor = color (default "white")
-
Set the default fill color when using areaFill.
- fontFlags
-
Set or clear miscellaneous text modifier flags. Use +flagName to set the flag, or -flagName to clear the flag.
- [+-]rigid
-
If the rigid flag is on, the font size does not scale when a compound object is scaled.
- [+-]special
-
If the special text flag is on, special characters such as backslash are passed unmodified to the output when exporting. This option is useful when embedding LaTeX control sequences in the text.
-
If the hidden flag is on, the string "<<>>" is displayed on the canvas instead of the text itself. The text is displayed as usual when printing or exporting.
- fontName
-
Valid values are the following LaTeX fonts: "Default", "Roman", "Bold", "Italic", "Sans Serif" or "Typewriter", or the PostScript fonts: "Postscript Default", "Times Roman", "Times Italic", "Times Bold", "Times Bold Italic", "Avantgarde Book", "Avantgarde Book Oblique", "Avantgarde Demi", "Avantgarde Demi Oblique", "Bookman Light", "Bookman Light Italic", "Bookman Demi", "Bookman Demi Italic", "Courier", "Courier Oblique", "Courier Bold", "Courier Bold Oblique", "Helvetica", "Helvetica Oblique", "Helvetica Bold", "Helvetica Bold Oblique", "Helvetica Narrow", "Helvetica Narrow Oblique", "Helvetica Narrow Bold", "Helvetica Narrow Bold Oblique", "New Century Schoolbook Roman", "New Century Schoolbook Italic", "New Century Schoolbook Bold", "New Century Schoolbook Bold Italic", "Palatino Roman", "Palatino Italic", "Palatino Bold", "Palatino Bold Italic", "Symbol", "Zapf Chancery Medium Italic", "Zapf Dingbats".
- fontSize
-
Set the font size in 1/72nd's of an inch.
- grid = length
-
Set an optional snap-to grid for groups. Causes the corners of groups (see end) to be rounded outward to the next multiple of this length.
- joinStyle = "miter" (default) | "round" | "bevel"
-
Set the segment join style for polyline and lineto.
- pageJustification = "Center" (default) | "Flushleft"
-
Control how fig objects are positioned on a printed page.
- lineStyle
-
Set the default line style. Valid values are: "default", "solid" (default), "dashed", "dotted", "dash-dotted", "dash-double-dotted", "dash-triple-dotted".
- lineThickness = length (default "0.0125 inch")
-
Set the default thickness for all lines.
- magnification = (float, percentage, default 100)
-
Set the printing magnification in percent.
- multiplePage = "Single" (default) | "Multiple"
-
Select whether to print on a single page or multiple pages.
- orientation = "Landscape" (default) | "Portrait"
-
Set the paper orientation or printing.
- paperSize (default "Letter")
-
Set the paper size for printing. Valid values are: "Letter", "Legal", "Ledger", "Tabloid", "A", "B", "C", "D", "E", "A0", "A1", "A2", "A3", "A4", "B5".
- position = point (default [0, 0])
-
Set the starting position. This option has the same effect as using moveto to set the position.
- splineSubtype (default "open-approximated")
-
Set the default subtype for spline and splineto. Valid values are: "open-approximated", "closed-approxmated", "open-interpolated", "closed-interpolated", "open-x", "closed-x".
- styleVal = length (default "0.075 inch")
-
Set the spacing for dashed lines. See lineStyle.
- textJustification|justification
-
Set the text justification. Valid values are: "left", "center" and "right".
- transparentColor = -2 (default) | -1 | color
-
Set the transparent color for GIF export. The special value -2 indicates "none", and the special value -1 indicates background.
- units = units (default "1.0 inch")
-
Set the default unit of length for all length values. If no number is given, it defaults to 1.0.
Common Parameter Types
- boolean
- color
-
Any of the xfig built-in colors: default, black, blue, green, cyan, red, magenta, yellow, white, blue4, blue3, blue2, ltblue, green4, green3, green2, cyan4, cyan3, cyan2, red4, red3, red2, magenta4, magenta3, magenta2, brown4, brown3, brown2, pink4, pink3, pink2, pink, gold, any color in /usr/share/X11/rgb.txt, or a hexadecimal color code #XXXXXX
- length
-
a number followed by optional unit (see units)
- point
-
[ x, y ] where x and y are of type length
- points
-
[[ x1, y1 ], [ x2, y2 ], [ x3, y3 ], ... ]
where xi, yi are of type length. Except for the case of the interpolated spline, the outline of the figure always passes through all points.
- units
-
an optional number followed by one of:
- ft | foot | feet:
-
foot
- in | inch | inches:
-
inch
- mil:
-
1/1000 inch
- pt | point:
-
0.0125 inch
- m | meter | metre:
-
meter
- dam | dekameter | dekametre:
-
10^-1 meter
- cm | centimeter | centametre
-
10^-2 meter
- mm | millimeter | millimetre
-
10^-3 meter
- fig:
-
1200 fig units per inch (imperial mode), or 450 fig units per cm (metric mode)
LICENSE
This module is free software: you can redistribute it and/or modify it under the terms of the Artistic License version 2.0 or later.
AUTHOR
Scott Guthridge <scott_guthridge@rompromity.net>
BUGS
Bounding boxes around text are only an approxmation.
SEE ALSO
xfig, fig2dev