fig4tex Reference Guide
(Version 1.6.1, June 24, 2002)
Alphabetical Lists of Macros
Geometrical macros - Mute macros
('\fig' Macros)
Writing macros - Non-mute macros
('\figwrite' Macros)
Macros for postscript generation
('\ps' Macros)

Summary

Geometrical macros - Mute macros
Control macros
Basic macros
Macros for elementary geometry
Transformation macros (one result)
Transformation macros (multiple result)
Geometrical construction macros
Macros related to the triangle
Macros related to arcs and curves
Writing macros - Non-mute macros
Control macros
Writing macros
Macros for postscript generation
Control macros
General
Line
Color
Arrow
Curve
Mesh
Basic drawing macros
Other drawing macros
Arc
Arrow
Curve
Triangle related macros
Grid

Geometrical macros - Mute macros

Control macros

\figinit{ScaleFactorUnit} or \figinit{ScaleFactorUnit, 2D}
\figinit{ScaleFactorUnit, X} with X in {3D, cavalier, orthogonal, realistic}

Initialization before the creation of a new figure. It is necessary to call this
macro in case of successive figures. No check is performed on the arguments.
First argument : Choice of the unit and the scale factor.
The unit can be one those defined in the TeX Book, namely: pt (TeX point),
pc (pica, 1pc = 12pt), in (inch, 1in = 72.27pt), bp (big point, 72bp = 1in),
cm (centimeter, 2.54cm = 1in), mm (millimeter, 10mm = 1cm), dd (point didot,
1157dd = 1238pt), cc (cicero, 1cc = 12dd), sp (scaled point, 65536sp = 1pt)
By default, pt is assumed and the scale factor is 1. For example, \figinit{in}
is equivalent to \figinit{2.54cm}.
Second argument (optional) : Choice of the space dimension and, in 3D, the
projection type.
If this argument is equal to 2D or absent, then geometry in the plane is assumed,
otherwise geometry in three dimensions is performed.
Moreover, if this argument is equal to:
. orthogonal, then the orthogonal projection is used,
. realistic, then the realistic projection is used,
. 3D or cavalier (or anything else), then the cavalier projection is used.
\figinsert{FileName} or \figinsert{FileName, ScaleFactor}
Insertion of the postscript file FileName in the page, scaled by ScaleFactor
which by default equals to 1.
\figscan FileName(HX,HY)
Draws a rectangular grid with horizontal and vertical steps HX and HY, with
numerical values corresponding to the bounding box read in the file FileName.
\figsetobdist (Dist)
Definition of the observation distance Dist for the realistic projection.
Must be called before step 2 (\psbeginfig) and 3 (\figvisu).
\figsettarget [Pt]
Definition of the target point Pt for the realistic projection.
Must be called before step 2 (\psbeginfig) and 3 (\figvisu).
\figsetview(Psi) or \figsetview(Psi, Theta) or \figsetview(Psi, Lambda)
Setting the parameters of the projection.
Must be called before step 2 (\psbeginfig) and 3 (\figvisu).
Psi and Theta denote angles to be given in degrees, Lambda denotes a real number.
The cavalier projection is defined by the angle Psi and Lambda which is a depth reduction
coefficient usually lying between 0 and 1. In this case, values of Psi lying in [0,180]
correspond to a view from above and to a view from beneath for values lying in [-180,0].
For the other projections, the observation direction is defined by the longitude Psi and
the latitude Theta, with (Psi, Theta) = (0, 0) corresponding to the Ox line (see also
\figsettarget and \figsetobdist).
The second argument (Theta or Lambda) is optional.
The default values are Psi = 40 degrees, Theta = 25 degrees, Lambda = 0.5.
\figshowsettings
Prints to the terminal the current settings.
\figvisu{Vbox}{Caption}{Commands}
Creation of a Vbox containing the figure and the legends defined by the Commands,
with a Caption centered below. The box must be previously allocated by the user.
Commands and Caption can be void.
Basic macros

\figpt NewPt :Text(X,Y)
\figpt NewPt :Text(X,Y,Z)

Definition of the point NewPt whose coordinates are (X,Y) or (X,Y,Z), with a joined Text.
If Z is missing, then Z=0 is assumed.
The default Text is $A_i$ where i is the number of the point (see \figsetptname).
\figptbary NewPt :Text[Pt1,... ,PtN ; Coef1,... ,CoefN]
Barycenter or centroid (with a joined Text) of N points bearing integer coefficients
\figptbaryR NewPt :Text[Pt1,... ,PtN ; Coef1,... ,CoefN]
Barycenter or centroid (with a joined Text) of N points bearing real coefficients
\figptcopy NewPt :Text/Pt/
Definition of NewPt, with an associated Text, with the same coordinates as Pt.
\figgetangle \Value [Center,Pt1,Pt2]
\figgetangle \Value [Center,Pt1,Pt2,Pt3]
Computation of the value \Value (in degrees) of the oriented angle (CP1, CP2), where
C=Center, P1=Pt1, P2=Pt2. \Value is a macro whose name is chosen by the user and can
then be used as a symbolic numerical constant.
In 3D, the plane is oriented so that the angle is measured counterclockwise around the
vector CP1 x CP3, where P3=Pt3. Notice that C, P1, P2 and P3 must be coplanar, but P3
must not lie on the line (C,P1).
\figgetdist\Value[Pt1,Pt2]
Computation of the euclidian distance \Value between the points Pt1 and Pt2.
\Value is a macro whose name is chosen by the user and can then be used as a symbolic
numerical constant.
\figvectC NewVect (X,Y)
\figvectC NewVect (X,Y,Z)
Definition of the vector NewVect with components (X,Y) or (X,Y,Z).
If Z is missing, then Z=0 is assumed.
\figvectN NewVect [Pt1,Pt2]
\figvectN NewVect [Pt1,Pt2,Pt3]
Definition of the vector NewVect which is:
. in 2D, the vector with origin point Pt1 and end point Pt2 rotated by pi/2
(so normal to [Pt1,Pt2]),
. in 3D, the vector product P1P2 / ||P1P2|| x P1P3 / ||P1P3||, ie a vector normal to
the plane defined by the 3 points and so that (P1P2, P1P3, NewVect) is a positively
oriented basis.
\figvectNV NewVect [Vector]
\figvectNV NewVect [Vector1, Vector2]
Definition of the vector NewVect which is:
. in 2D, the vector Vector rotated by pi/2
. in 3D, the vector product Vector1 / ||Vector1|| x Vector2 / ||Vector2|| so that
(Vector1, Vector2, NewVect) is a positively oriented basis.
\figvectP NewVect [Pt1,Pt2]
Definition of the vector NewVect with origin point Pt1 and end point Pt2.
\figvectU NewVect [Vector]
Definition of the unitary vector NewVect which is Vector normalized according to
the unit and the scale factor chosen by the user (see \figinit).
Macros for elementary geometry

Transformation macros (one result)

\figpthom NewPt :Text= Pt /Center, Ratio/

Image NewPt of point Pt by the homothety of center Center and of ratio Ratio
with a joined Text
\figptrot NewPt :Text= Pt /Center, Angle/
\figptrot NewPt :Text= Pt /Center, Angle, Vector/
Image NewPt (with a joined Text) of point Pt by the rotation defined:
. in 2D, by the center Center and the angle Angle (in degrees),
. in 3D, by the axis (Center, Vector) and the angle Angle (in degrees).
Pt is rotated by Angle around the axis. The sense of rotation is such that
(CP, CP', Vector) is a positively oriented basis, where C=Center, P=Pt, P'=NewPt.
\figptsym NewPt :Text= Pt /LinePt1, LinePt2/
\figptsym NewPt :Text= Pt /PlanePt, NormalVector/
Image NewPt (with a joined Text) of point Pt by the orthogonal symmetry
with respect to:
. in 2D, the line defined by the points LinePt1 and LinePt2,
. in 3D, the plane defined by the point PlanePt and the vector NormalVector normal
to the plane.
\figpttra NewPt :Text= Pt /Lambda, Vector/

Image NewPt of point Pt by the translation of vector Lambda * Vector
with a joined Text.
\figpttraC NewPt :Text= Pt /X,Y/
\figpttraC NewPt :Text= Pt /X,Y,Z/
Image NewPt of point Pt by the translation of vector (X,Y) in 2D, (X,Y,Z) in 3D
with a joined Text.
\figptorthoprojline NewPt :Text= Pt /LinePt1, LinePt2/
Image NewPt of point Pt by the orthogonal projection onto the line (LinePt1,LinePt2),
with a joined Text.
\figptorthoprojplane NewPt :Text= Pt /PlanePt, NormalVector/
Image NewPt of point Pt by the orthogonal projection onto the plane defined by
the point PlanePt and the normal vector NormalVector, with a joined Text.
Transformation macros (multiple result)

\figptshom NewPt1 = Pt1, Pt2, ..., PtN /Center, Ratio/

Images NewPt1, NewPt1+1,..., NewPt1+(N-1) of points Pt1, Pt2, ..., PtN
by the homothety of center Center and of ratio Ratio.
See following information at \figptstra.
\figptsrot NewPt1 = Pt1, Pt2, ..., PtN /Center, Angle/
\figptsrot NewPt1 = Pt1, Pt2, ..., PtN /Center, Angle, Vector/
Images NewPt1, NewPt1+1,..., NewPt1+(N-1) of points Pt1, Pt2, ..., PtN
by the rotation defined:
. in 2D, by the center Center and the angle Angle (in degrees),
. in 3D, by the axis (Center, Vector) and the angle Angle (in degrees). Each point
Pti is rotated by Angle around the axis. The sense of rotation is such that
(CP, CP', Vector) is a positively oriented basis, where C=Center, P=Pti, P'=NewPti.
See following information at \figptstra.
\figptssym NewPt1 = Pt1, Pt2, ..., PtN /LinePt1, LinePt2/
\figptssym NewPt1 = Pt1, Pt2, ..., PtN /PlanePt, NormalVector/
Images NewPt1, NewPt1+1,..., NewPt1+(N-1) of points Pt1, Pt2, ..., PtN
by the orthogonal symmetry with respect to:
. in 2D, the line defined by the points LinePt1 and LinePt2,
. in 3D, the plane defined by the point PlanePt and the vector NormalVector normal
to the plane. See following information at \figptstra.
\figptstra NewPt1 = Pt1, Pt2, ..., PtN /Lambda, Vector/
Images NewPt1, NewPt1+1,..., NewPt1+(N-1) of points Pt1, Pt2, ..., PtN
by the translation of vector Lambda * Vector
Text eventually previously associated with the result points is lost.
The result points NewPti have successive numbers.
The data points Pti can be given in any order.
WARNING : Let Ir (resp. Id) the set of the result points numbers (resp. the set
of the given points numbers). Let J the intersection of Ir and Id.
1) Ir = Id, or J is empty, or NewPt1 does not belong to J: no problem.
2) Otherwise, the result given by the macro MAY BE WRONG, at least partially:
this is because, in this case, NewPt1 belongs to J, and the given points are
taken into account sequentially, beginning from the first element in the list.
\figptsorthoprojline NewPt1 = Pt1, Pt2, ..., PtN /LinePt1, LinePt2/
Images NewPt1, NewPt1+1,..., NewPt1+(N-1) of points Pt1, Pt2, ..., PtN
by the orthogonal projection onto the line (LinePt1, LinePt2).
\figptsorthoprojplane NewPt1 = Pt1, Pt2, ..., PtN /PlanePt, NormalVector/
Images NewPt1, NewPt1+1,..., NewPt1+(N-1) of points Pt1, Pt2, ..., PtN
by the orthogonal projection onto the plane defined by the point PlanePt and the
normal vector NormalVector.
Geometrical construction macros

\figptinterlines NewPt :Text[LinePt1,Vector1; LinePt2,Vector2]

Intersection of the line defined by the point LinePt1 and the vector Vector1
and the line defined by the point LinePt2 and the vector Vector2
with a joined Text
\figptinterlineplane NewPt :Text[LinePt,Vector; PlanePt,NormalVector]
Intersection of the line defined by the point LinePt and the vector Vector
and the plane defined by the point PlanePt and the normal vector NormalVector
with a joined Text.
\figptendnormal NewPt :Text: Length,Lambda [Pt1,Pt2]
Endpoint (with a joined Text) of the "exterior normal" to the segment [Pt1, Pt2].
The length of the normal vector is Length. Lambda is the barycentric coordinate
of the origin of the normal with respect to the segment [Pt1, Pt2], which sets the
position of the vector along [Pt1, Pt2]. In 3D-mode, it works only in the plane Z=0.
\figptsintercirc NewPt1 [Center1,Radius1 ; Center2,Radius2]
Intersections NewPt1 and NewPt2 (=NewPt1+1) of the two circles defined by their
center and radius, (Center1,Radius1) and (Center2,Radius2).
NewPt1 and NewPt2 must be different from Center1 and Center2.
NewPt1 and NewPt2 are ordered so that the angle (NewPt1, Center1, NewPt2) is positive.
If the two circles do not intersect, then NewPt1=Center1 and NewPt2=Center2.
In 3D-mode, it works only in the plane Z=0.
Macros related to the triangle

\figptcircumcenter NewPt :Text[Pt1,Pt2,Pt3]

Center NewPt of the circumscribed circle to the triangle (Pt1,Pt2,Pt3) with a joined Text.
\figptinscribedcenter NewPt :Text[Pt1,Pt2,Pt3]
Center NewPt of the inscribed circle to the triangle (Pt1,Pt2,Pt3) with a joined Text.
\figptorthocenter NewPt :Text[Pt1,Pt2,Pt3]
Orthocenter NewPt of the triangle (Pt1,Pt2,Pt3) with a joined Text.
Macros related to arcs and curves

\figptcirc NewPt :Text: Center;Radius (Angle)
\figptcirc NewPt :Text: Center,Pt1,Pt2;Radius (Angle)

Creation of the point NewPt, with an associated Text, on the circle defined by its Center,
and its Radius. The position of the point is set by the Angle given in degrees.
In 3D, the circle is lying in the plane (Center,Pt1,Pt2) = (C,P1,P2) and
the Angle is measured counterclockwise around the vector CP1 x CP2, starting from
the half-line (C,P1).
\figptell NewPt :Text: Center;XRad,YRad (Angle,Inclination)
Creation of the point NewPt, with an associated Text, on the ellipse defined by Center,
XRad, YRad and Inclination. Inclination is the rotation angle of the local axes with
respect to the paper sheet. The position of the point is set by the parametrization
Angle given in local axes. The two angles are given in degrees.
In 3D-mode, it works only in the plane Z=0.
\figptellP NewPt :Text: Center,PtAxis1,PtAxis2 (Angle)
Creation of the point NewPt, with an associated Text, on the ellipse defined by its Center,
and the end points of its axes, A1=PtAxis1 and A2=PtAxis2. The local axes are then
defined by the basis (CA1, CA2). The position of the point is set by the parametrization
Angle given in degrees, starting from the half-line (C,A1) and measured counterclockwise
around the vector CA1 x CA2.
\figptBezier NewPt :Text: t [Pt1,Pt2,Pt3,Pt4]
Computes the point NewPt (with a joined Text) lying on the cubic Bezier curve defined
by the four control points Pt1, Pt2, Pt3 and Pt4, for the parameter value t.
We recall that if t=0, NewPt=Pt1 and if t=1, NewPt=Pt4.
\figptscontrol NewPt1 [Pt1,Pt2,Pt3,Pt4]
Computes the two control points NewPt1 and NewPt2 (=NewPt1+1) so that the cubic Bezier
curve defined by the control points Pt1, NewPt1, NewPt2 and Pt4 interpolates the
four points Pt1, Pt2, Pt3 and Pt4 with respective parameter values of 0, 1/3, 2/3 and 1.
\figptcurvcenter NewPt :Text: t [Pt1,Pt2,Pt3,Pt4]
Curvature center NewPt (with a joined Text) at the point lying on the cubic Bezier curve
defined by the four control points Pt1, Pt2, Pt3 and Pt4, for the parameter value t.
\figvectDBezier NewVect : n, t [Pt1,Pt2,Pt3,Pt4]
Computes the vector NewVect corresponding to the derivative of order n of the cubic Bezier
curve defined by the four control points Pt1, Pt2, Pt3 and Pt4, for the parameter value t.
The order n must be equal to 1 or 2.
Writing macros - Non-mute macros

Control macros

\figcoord{NDec}

To write the coordinates of a point. To be used in the joined text argument
of the macros that create points and the non-mute macros \figwrit* .
Only NDec decimals are printed.
\figsetmark{Mark}
Definition of the point marker to be written, for example a point (.) or $\bullet$.
By default, nothing is written.
\figsetptname{Name}
Sets the new default name for the points created.
The default name for the point i is $A_i$: \figsetptname{$X^{(#1)}$} changes it
to $X^{(i)}$.
\figsetroundcoord{yes} or \figsetroundcoord{no}
Switches on rounding of decimals printed with \figcoord.
\figshowpts[Nmin, Nmax]
Shows on the figure the location of every point defined since the beginning
of the session, whose number lies in the interval [Nmin, Nmax].
Writes a bullet at each location point along with the number of the point or
the joined text if any.
CAUTION :
If Nmax-Nmin is too large, an error message "! TeX capacity exceeded" may occur.
Writing macros

\figwrite[Pt1, Pt2, ..., PtN]{Text}

Writing a Text after Pt1, Pt2, ..., PtN according to TeX's alignment.
\figwritec[Pt1, Pt2, ..., PtN]{Text}
Writing a Text vertically and horizontally centered at Pt1, Pt2, ..., PtN.
\figwritep[Pt1, Pt2, ..., PtN]
Writing the point marker at the locations defined by Pt1, Pt2, ..., PtN.
\figwritew Pt1, Pt2, ..., PtN :Text(Distance)
\figwritee Pt1, Pt2, ..., PtN :Text(Distance)
\figwriten Pt1, Pt2, ..., PtN :Text(Distance)
\figwrites Pt1, Pt2, ..., PtN :Text(Distance)
Writing a point marker at the locations defined by Pt1, Pt2, ..., PtN, with a Text
placed, with respect to each point, at a given Distance from each point towards
the west, the east, the north or the south.
\figwritenw Pt1, Pt2, ..., PtN :Text(Distance)
\figwritesw Pt1, Pt2, ..., PtN :Text(Distance)
\figwritene Pt1, Pt2, ..., PtN :Text(Distance)
\figwritese Pt1, Pt2, ..., PtN :Text(Distance)
Writing a point marker at the locations defined by Pt1, Pt2, ..., PtN, with a Text
placed, with respect to each point, at a given Distance from each point towards
the north-west, the south-west, the north-east or the south-east.
\figwritegcw Pt1, Pt2, ..., PtN :Text(DistanceX,DistanceY)
\figwritegce Pt1, Pt2, ..., PtN :Text(DistanceX,DistanceY)
Writing a point marker at the locations defined by Pt1, Pt2, ..., PtN, with a Text
placed, with respect to each point, at a horizontal distance DistanceX (west or east)
and a vertical distance DistanceY between the point and the mid-height of the text.
\figwritegw Pt1, Pt2, ..., PtN :Text(DistanceX,DistanceY)
\figwritege Pt1, Pt2, ..., PtN :Text(DistanceX,DistanceY)
Writing a point marker at the locations defined by Pt1, Pt2, ..., PtN, with a Text
placed, with respect to each point, at a horizontal distance DistanceX (west or east)
and a vertical distance DistanceY from the bottom of the text if DistanceY > 0, from
the top if DistanceY < 0. If DistanceY = 0, the text is vertically centered.
Macros for postscript generation

Control macros

General

\psbeginfig{FileName}

Starting the creation of a PostScript file whose name is FileName.
\psendfig
End of the current PostScript file.
\pssetupdate{no} or \pssetupdate{yes}
Setting the update mode to "yes" before \psbeginfig enforces the postscript
file to be recreated at each compilation. The default is "no".
Line

\pssetdash{Index} or \pssetdash{Pattern}

Setting the line style by Index (Index = 1 (solid) to 10) or by Pattern.
To switch back to the default value : \pssetdash{\defaultdash}
\pssetwidth{Width}
Setting the line width (in postscript points).
To switch back to the default value : \pssetwidth{\defaultwidth}
Note : has no effect on a straight line after \pssetfillmode{yes}.
\pssetseconddash{Index} or \pssetseconddash{Pattern}
Setting the secondary line style by Index (Index = 1 (solid) to 10) or by Pattern.
To switch back to the default value : \pssetseconddash{\defaultseconddash}
\pssetsecondwidth{Width}
Setting the secondary line width (in postscript points).
To switch back to the default value : \pssetsecondwidth{\defaultsecondwidth}
\psresetsecondsettings
To reset the secondary line settings.
Color

\pssetcmyk{\ColorName} or \pssetcmyk{cmyk color code}

Setting the color in cmyk code.
\pssetrgb{\ColorName} or \pssetrgb{rgb color code}
Setting the color in rgb code.
\pssetgray{GrayLevel}
Setting the gray level, real number between 0 (black) and 1 (white).
\pssetfillmode{no} or \pssetfillmode{yes}
Setting the filling mode to "no" tells the concerned macros to draw lines ;
this is the default. Setting the filling mode to "yes" tells the macros to
fill the appropriate area using the current color or gray shade.
\pssetsecondcmyk{\ColorName} or \pssetsecondcmyk{cmyk color code}
\pssetsecondrgb{\ColorName} or \pssetsecondrgb{rgb color code}
\pssetsecondgray{GrayLevel}
Setting the secondary color in cmyk or rgb color code, or in gray tone.
Arrow

\pssetarrowheadangle{Angle}

Setting the arrow-head half-angle to Angle (in degrees).
To switch back to the default value : \pssetarrowheadangle{\defaultarrowheadangle}
\pssetarrowheadfill{no} or \pssetarrowheadfill{yes}
Setting the arrow-head filling switch. The default value is "no".
\pssetarrowheadout{no} or \pssetarrowheadout{yes}
Setting the arrow-head "outside" switch. The default value is "no".
\pssetarrowheadlength{Length}
Setting the length of each edge of the arrow-head to Length (in user coordinates).
To switch back to the default value : \pssetarrowheadlength{\defaultarrowheadlength}
\pssetarrowheadratio{Ratio}
Setting the arrow-head ratio to Ratio (real number usually in (0,1)).
To switch back to the default value : \pssetarrowheadratio{\defaultarrowheadratio}
\psresetarrowhead
To reset the arrow-head attributes to the default values.
Curve

\pssetroundness{Roundness}

Setting the roundness of a curve to Roundness (real number).
To switch back to the default value : \pssetroundness{\defaultroundness}
Mesh

\pssetmeshdiag{Index}

Setting the flag that controls the drawing of a grid mesh:
. if Index = 1, the SW-NE diagonal is drawn inside each cell,
. if Index = -1, the NW-SE diagonal is drawn inside each cell,
. otherwise, each cell is empty ; this is the default (Index = 0).
To switch back to the default value : \pssetmeshdiag{\defaultmeshdiag}
Basic drawing macros

\pscirc Center (Radius)
\pscirc Center,Pt1,Pt2 (Radius)

Circle of center Center and of radius Radius.
In 3D, the circle is in the plane defined the 3 points Center, Pt1 and Pt2 ;
Pt1 and Pt2 do not need to lie on the circle.
\psline[Pt1,Pt2,... ,PtN]
Line defined by N points, closed if the last point number equals the first one.
\pslineF{Filename}
Line defined by points read from the text file Filename, which contains the
coordinates of the points, one point per line, given as X Y in 2D and as
X Y Z in 3D (the values must be separated by a white space and nothing else).
The line is closed if the last point equals the first one.
Other drawing macros

Arc

\psarccirc Center ; Radius (Ang1,Ang2)
\psarccirc Center,Pt1,Pt2 ; Radius (Ang1,Ang2)

Circular arc of center Center and radius Radius limited by the angles
Ang1 and Ang2 given in degrees.
In 2D, the angles are measured counterclockwise.
In 3D, the arc lies in the plane defined by the 3 points Center, Pt1 and Pt2.
The angles are measured counterclockwise around the vector CP1 x CP2, starting
from the half-line (C, P1), where C=Center, P1=Pt1, P2=Pt2.
\psarccircP Center ; Radius [Pt1,Pt2]
\psarccircP Center ; Radius [Pt1,Pt2,Pt3]
Point version of \psarccirc
Circular arc of center Center and of radius Radius limited by the two half-lines
(Center, Pt1) and (Center, Pt2).
Let N be the normal vector that orients the plane in which lies the arc.
In 2D, N is defined as usual by N = Z = X x Y.
In 3D, N = CP1 x CP3, where C=Center, P1=Pt1, P3=Pt3.
The arc is drawn from Pt1 towards Pt2 turning counterclockwise around the axis (C; N).
Notice that C, P1, P2 and P3 must be coplanar, but P3 must not lie on the line (C,P1).
\psarcell Center ; XRad,YRad (Ang1,Ang2, Inclination)
Arc of ellipse of center Center, of axes XRad and YRad, limited by the parametrization
angles Ang1 and Ang2. The major axis is turned by an angle Inclination from the
horizontal line. The angles are given in degrees and measured counterclockwise.
In 3D-mode, it works only in the plane Z=0.
\psarcellPA Center,PtAxis1,PtAxis2 (Ang1, Ang2)
Arc of ellipse of center Center limited by the parametrization angles Ang1 and Ang2.
The end point of the major axis is PtAxis1 and the end point of the minor axis is PtAxis2.
The angles are given in degrees and measured counterclockwise around the vector CA1 x CA2.
\psarcellPP Center,PtAxis1,PtAxis2 [Pt1,Pt2]
Arc of ellipse of center Center limited by the two half-lines (Center,Pt1)
and (Center,Pt2). The end point of the major axis is PtAxis1 and the end point
of the minor axis is PtAxis2. The arc is drawn counterclockwise around the vector
CA1 x CA2, where C=Center, A1=PtAxis1, A2=PtAxis2.
Arrow

\psarrow [Pt1,Pt2]

Arrow from Pt1 to Pt2.
The arrow-head is drawn according to the \psarrowhead macro settings.
\psarrowBezier [Pt1,Pt2,Pt3,Pt4]
Arrow that consists of the cubic Bezier curve defined by the four control points
Pt1, Pt2, Pt3 and Pt4, and the arrow-head at point Pt4.
\psarrowcirc Center ; Radius (Ang1,Ang2)
\psarrowcirc Center,Pt1,Pt2 ; Radius (Ang1,Ang2)
Circular arrow such that the circular arc is centered at Center, has the radius Radius
and is limited by the angles Ang1 and Ang2 given in degrees.
If Ang2 > Ang1, the arrow is drawn counterclockwise, else it is drawn clockwise.
The arrow-head is drawn according to the \psarrowhead macro settings.
In 3D, the arc lies in the plane defined the 3 points Center, Pt1 and Pt2.
The angles are measured counterclockwise around the vector CP1 x CP2, starting
from the half-line (C, P1), where C=Center, P1=Pt1, P2=Pt2.
\psarrowcircP Center ; Radius [Pt1,Pt2]
\psarrowcircP Center ; Radius [Pt1,Pt2,Pt3]
Point version of \psarrowcirc
Circular arrow such that the circular arc is centered at Center, has the radius
|Radius| and is limited by the two half-lines (Center, Pt1) and (Center, Pt2).
Let N be the normal vector that orients the plane in which lies the arc.
In 2D, N is defined as usual by N = Z = X x Y.
In 3D, N = CP1 x CP3, where C=Center, P1=Pt1, P3=Pt3.
The arrow is drawn from Pt1 towards Pt2 turning around the axis (Center; N):
. counterclockwise if Radius > 0,
. clockwise if Radius < 0.
Notice that C, P1, P2 and P3 must be coplanar, but P3 must not lie on the line (C,P1).
\psarrowhead [Pt1,Pt2]
Arrow-head of the arrow from Pt1 to Pt2. The segment [Pt1, Pt2] is not drawn.
The appearance of the arrow-head can be modified with the help of the macros :
. \pssetarrowheadangle which sets the opening angle,
. \pssetarrowheadfill which tells whether the interior of the arrow-head
must be filled or not,
. \pssetarrowheadout which tells whether the arrow-head must be drawn outside
the segment [Pt1, Pt2] or not,
. \pssetarrowheadlength which sets the length of the arrow-head in user coordinates,
. \pssetarrowheadratio which sets the length of the arrow-head as a ratio of the
length of the segment [Pt1, Pt2].
Nota : The last two macros are mutually exclusive ; the default is to use the length.
Default values exist for each attribute.
Curve

\psBezier N [Pt_1, ..., Pt_{3N+1}]

Bezier curve defined by N cubic arcs. The arc number i is defined by the four
control points P_{j}, P_{j+1}, P_{j+2}, P_{j+3} with j=3i-2.
The curve interpolates each 3 points beginning with the first, i.e. at P_{3i-2},
i=1,...N+1. At these points, the curve is only C0. To obtain G1 continuity at P_j,
the points P_{j-1}, P_j and P_{j+1} must be aligned.
The total number of points must be 3N+1 and is not checked.
\pscurve [Pt0,Pt1,... ,PtN,PtN+1]
C1 curve that interpolates the points P1, P2,... ,Pn. The direction of the
tangent at P1 is given by P0P2, and at Pn by Pn-1Pn+1. The curve consists of
n-1 Bezier cubic arcs. To get a C1 closed curve, the last three points must
be the same as the first three ones.
The shape of the curve can be modified by a roundness coefficient to be
set by the macro \pssetroundness. The best values for this coefficient are
in the interval [0.15, 0.3] (0 gives a polygonal line).
Triangle related macros

\psaltitude Dim [Pt1,Pt2,Pt3]

Altitude from Pt1 in the triangle (Pt1, Pt2, Pt3).
Dim is the dimension of the square at the end point of the altitude.
\psnormal Length,Lambda [Pt1,Pt2]
Exterior normal of length Length to the segment [Pt1, Pt2]. Lambda is the barycentric
coordinate of the origin of the normal with respect to the segment [Pt1, Pt2], which
sets the position of the vector along [Pt1, Pt2].
In 3D-mode, it works only in the plane Z=0.
Grid

\psmesh N1,N2 [Pt1,Pt2,Pt3,Pt4]

Mesh of N1 x N2 intervals on the quadrangle (Pt1, Pt2, Pt3, Pt4)
(N1 along [Pt1, Pt2] and [Pt3, Pt4], N2 along the 2 other segments).
If the flag set by \pssetmeshdiag is equal to 1 (resp. -1), the SW-NE (resp. NW-SE)
diagonal is drawn inside each cell. By default, no diagonal is drawn.
\pstrimesh Type [Pt1,Pt2,Pt3]
Mesh of the type Type triangle on the triangle (Pt1, Pt2, Pt3).