fig4tex Reference Guide |
(Version 1.6.1, June 24, 2002) |
|
\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 fileFileName
in the page, scaled byScaleFactor
which by default equals to 1.
\figscan FileName(HX,HY)
Draws a rectangular grid with horizontal and vertical stepsHX
andHY
, with
numerical values corresponding to the bounding box read in the fileFileName
.
\figsetobdist (Dist)
Definition of the observation distanceDist
for the realistic projection.
Must be called before step 2 (\psbeginfig
) and 3 (\figvisu
).
\figsettarget [Pt]
Definition of the target pointPt
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
andTheta
denote angles to be given in degrees,Lambda
denotes a real number.
The cavalier projection is defined by the anglePsi
andLambda
which is a depth reduction
coefficient usually lying between 0 and 1. In this case, values ofPsi
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 longitudePsi
and
the latitudeTheta
, with (Psi
,Theta
) = (0, 0) corresponding to the Ox line (see also
\figsettarget
and\figsetobdist
).
The second argument (Theta
orLambda
) is optional.
The default values arePsi
= 40 degrees,Theta
= 25 degrees,Lambda
= 0.5.
\figshowsettings
Prints to the terminal the current settings.
\figvisu{Vbox}{Caption}{Commands}
Creation of aBasic macrosVbox
containing the figure and the legends defined by theCommands
,
with aCaption
centered below. The box must be previously allocated by the user.
Commands
andCaption
can be void.
\figpt NewPt :Text(X,Y)
\figpt NewPt :Text(X,Y,Z)
Definition of the pointNewPt
whose coordinates are(X,Y)
or(X,Y,Z)
, with a joinedText
.
IfZ
is missing, thenZ
=0 is assumed.
The defaultText
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 joinedText
) of N points bearing integer coefficients
\figptbaryR NewPt :Text[Pt1,... ,PtN ; Coef1,... ,CoefN]
Barycenter or centroid (with a joinedText
) of N points bearing real coefficients
\figptcopy NewPt :Text/Pt/
Definition ofNewPt
, with an associatedText
, with the same coordinates asPt
.
\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 pointsPt1
andPt2
.
\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 vectorNewVect
with components(X,Y)
or(X,Y,Z)
.
IfZ
is missing, thenZ
=0 is assumed.
\figvectN NewVect [Pt1,Pt2]
\figvectN NewVect [Pt1,Pt2,Pt3]
Definition of the vectorNewVect
which is:
. in 2D, the vector with origin pointPt1
and end pointPt2
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 vectorNewVect
which is:
. in 2D, the vectorVector
rotated by pi/2
. in 3D, the vector productVector1
/ ||Vector1
|| xVector2
/ ||Vector2
|| so that
(Vector1
,Vector2
,NewVect
) is a positively oriented basis.
\figvectP NewVect [Pt1,Pt2]
Definition of the vectorNewVect
with origin pointPt1
and end pointPt2
.
\figvectU NewVect [Vector]
Definition of the unitary vectorMacros for elementary geometryNewVect
which isVector
normalized according to
the unit and the scale factor chosen by the user (see\figinit
).
Transformation macros (one result)
\figpthom NewPt :Text= Pt /Center, Ratio/
ImageNewPt
of pointPt
by the homothety of centerCenter
and of ratioRatio
with a joinedText
\figptrot NewPt :Text= Pt /Center, Angle/
\figptrot NewPt :Text= Pt /Center, Angle, Vector/
ImageNewPt
(with a joinedText
) of pointPt
by the rotation defined:
. in 2D, by the centerCenter
and the angleAngle
(in degrees),
. in 3D, by the axis (Center
,Vector
) and the angleAngle
(in degrees).
Pt
is rotated byAngle
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/
ImageNewPt
(with a joinedText
) of pointPt
by the orthogonal symmetry
with respect to:
. in 2D, the line defined by the pointsLinePt1
andLinePt2
,
. in 3D, the plane defined by the pointPlanePt
and the vectorNormalVector
normal
to the plane.
\figpttra NewPt :Text= Pt /Lambda, Vector/
ImageNewPt
of pointPt
by the translation of vectorLambda
*Vector
with a joinedText
.
\figpttraC NewPt :Text= Pt /X,Y/
\figpttraC NewPt :Text= Pt /X,Y,Z/
ImageNewPt
of pointPt
by the translation of vector(X,Y)
in 2D,(X,Y,Z)
in 3D
with a joinedText
.
\figptorthoprojline NewPt :Text= Pt /LinePt1, LinePt2/
ImageNewPt
of pointPt
by the orthogonal projection onto the line (LinePt1
,LinePt2
),
with a joinedText
.
\figptorthoprojplane NewPt :Text= Pt /PlanePt, NormalVector/
ImageTransformation macros (multiple result)NewPt
of pointPt
by the orthogonal projection onto the plane defined by
the pointPlanePt
and the normal vectorNormalVector
, with a joinedText
.
\figptshom NewPt1 = Pt1, Pt2, ..., PtN /Center, Ratio/
ImagesNew
,Pt
1New
+1,...,Pt
1New
+(N-1) of pointsPt
1Pt1
,Pt2
, ...,PtN
by the homothety of centerCenter
and of ratioRatio
.
See following information at\figptstra
.
\figptsrot NewPt1 = Pt1, Pt2, ..., PtN /Center, Angle/
\figptsrot NewPt1 = Pt1, Pt2, ..., PtN /Center, Angle, Vector/
ImagesNew
,Pt
1New
+1,...,Pt
1New
+(N-1) of pointsPt
1Pt1
,Pt2
, ...,PtN
by the rotation defined:
. in 2D, by the centerCenter
and the angleAngle
(in degrees),
. in 3D, by the axis (Center
,Vector
) and the angleAngle
(in degrees). Each point
Pt
i is rotated byAngle
around the axis. The sense of rotation is such that
(CP, CP',Vector
) is a positively oriented basis, where C=Center
, P=Pt
i, P'=NewPt
i.
See following information at\figptstra
.
\figptssym NewPt1 = Pt1, Pt2, ..., PtN /LinePt1, LinePt2/
\figptssym NewPt1 = Pt1, Pt2, ..., PtN /PlanePt, NormalVector/
ImagesNew
,Pt
1New
+1,...,Pt
1New
+(N-1) of pointsPt
1Pt1
,Pt2
, ...,PtN
by the orthogonal symmetry with respect to:
. in 2D, the line defined by the pointsLinePt1
andLinePt2
,
. in 3D, the plane defined by the pointPlanePt
and the vectorNormalVector
normal
to the plane. See following information at\figptstra
.
\figptstra NewPt1 = Pt1, Pt2, ..., PtN /Lambda, Vector/
ImagesNew
,Pt
1New
+1,...,Pt
1New
+(N-1) of pointsPt
1Pt1
,Pt2
, ...,PtN
by the translation of vectorLambda
*Vector
Text
eventually previously associated with the result points is lost.
The result pointsNewPt
i have successive numbers.
The data pointsPt
i 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, orNew
does not belong to J: no problem.Pt
1
2) Otherwise, the result given by the macro MAY BE WRONG, at least partially:
this is because, in this case,New
belongs to J, and the given points arePt
1
taken into account sequentially, beginning from the first element in the list.
\figptsorthoprojline NewPt1 = Pt1, Pt2, ..., PtN /LinePt1, LinePt2/
ImagesNew
,Pt
1New
+1,...,Pt
1New
+(N-1) of pointsPt
1Pt1
,Pt2
, ...,PtN
by the orthogonal projection onto the line (LinePt1
,LinePt2
).
\figptsorthoprojplane NewPt1 = Pt1, Pt2, ..., PtN /PlanePt, NormalVector/
ImagesGeometrical construction macrosNew
,Pt
1New
+1,...,Pt
1New
+(N-1) of pointsPt
1Pt1
,Pt2
, ...,PtN
by the orthogonal projection onto the plane defined by the pointPlanePt
and the
normal vectorNormalVector
.
\figptinterlines NewPt :Text[LinePt1,Vector1; LinePt2,Vector2]
Intersection of the line defined by the pointLinePt1
and the vectorVector1
and the line defined by the pointLinePt2
and the vectorVector2
with a joinedText
\figptinterlineplane NewPt :Text[LinePt,Vector; PlanePt,NormalVector]
Intersection of the line defined by the point LinePt
and the vectorVector
and the plane defined by the pointPlanePt
and the normal vectorNormalVector
with a joinedText
.
\figptendnormal NewPt :Text: Length,Lambda [Pt1,Pt2]
Endpoint (with a joinedText
) of the "exterior normal" to the segment [Pt1
,Pt2
].
The length of the normal vector isLength
.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]
IntersectionsMacros related to the triangleNew
andPt
1New
(=Pt
2New
+1) of the two circles defined by theirPt
1
center and radius, (Center1
,Radius1
) and (Center2
,Radius2
).
New
andPt
1New
must be different fromPt
2Center1
andCenter2
.
New
andPt
1New
are ordered so that the angle (Pt
2New
,Pt
1Center1
,New
) is positive.Pt
2
If the two circles do not intersect, thenNew
=Pt
1Center1
andNew
=Pt
2Center2
.
In 3D-mode, it works only in the plane Z=0.
\figptcircumcenter NewPt :Text[Pt1,Pt2,Pt3]
Center
NewPt
of the circumscribed circle to the triangle (Pt1
,Pt2
,Pt3
) with a joinedText
.
\figptinscribedcenter NewPt :Text[Pt1,Pt2,Pt3]
Center
NewPt
of the inscribed circle to the triangle (Pt1
,Pt2
,Pt3
) with a joinedText
.
\figptorthocenter NewPt :Text[Pt1,Pt2,Pt3]
OrthocenterMacros related to arcs and curvesNewPt
of the triangle (Pt1
,Pt2
,Pt3
) with a joinedText
.
\figptcirc NewPt :Text: Center;Radius (Angle)
\figptcirc NewPt :Text: Center,Pt1,Pt2;Radius (Angle)
Creation of the pointNewPt
, with an associatedText
, on the circle defined by itsCenter
,
and itsRadius
. The position of the point is set by theAngle
given in degrees.
In 3D, the circle is lying in the plane (Center
,Pt1
,Pt2
) = (C,P1,P2) and
theAngle
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 pointNewPt
, with an associatedText
, on the ellipse defined byCenter
,
XRad
,YRad
andInclination
.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 pointNewPt
, with an associatedText
, on the ellipse defined by itsCenter
,
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 pointNewPt
(with a joinedText
) lying on the cubic Bezier curve defined
by the four control pointsPt1
,Pt2
,Pt3
andPt4
, 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 pointsNew
andPt
1New
(=Pt
2New
+1) so that the cubic BezierPt
1
curve defined by the control pointsPt1
,New
,Pt
1New
andPt
2Pt4
interpolates the
four pointsPt1
,Pt2
,Pt3
andPt4
with respective parameter values of 0, 1/3, 2/3 and 1.
\figptcurvcenter NewPt :Text: t [Pt1,Pt2,Pt3,Pt4]
Curvature centerNewPt
(with a joinedText
) at the point lying on the cubic Bezier curve
defined by the four control pointsPt1
,Pt2
,Pt3
andPt4
, for the parameter value t.
\figvectDBezier NewVect : n, t [Pt1,Pt2,Pt3,Pt4]
Computes the vectorNewVect
corresponding to the derivative of order n of the cubic Bezier
curve defined by the four control pointsPt1
,Pt2
,Pt3
andPt4
, for the parameter value t.
The order n must be equal to 1 or 2.
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* .
OnlyNDec
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 beginningWriting macros
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 :
IfNmax
-Nmin
is too large, an error message "! TeX capacity exceeded" may occur.
\figwrite[Pt1, Pt2, ..., PtN]{Text}
Writing aText
afterPt1
,Pt2
, ...,PtN
according to TeX's alignment.
\figwritec[Pt1, Pt2, ..., PtN]{Text}
Writing aText
vertically and horizontally centered atPt1
,Pt2
, ...,PtN
.
\figwritep[Pt1, Pt2, ..., PtN]
Writing the point marker at the locations defined byPt1
,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 byPt1
,Pt2
, ...,PtN
, with aText
placed, with respect to each point, at a givenDistance
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 byPt1
,Pt2
, ...,PtN
, with aText
placed, with respect to each point, at a givenDistance
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 byPt1
,Pt2
, ...,PtN
, with aText
placed, with respect to each point, at a horizontal distanceDistanceX
(west or east)
and a vertical distanceDistanceY
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 byPt1
,Pt2
, ...,PtN
, with aText
placed, with respect to each point, at a horizontal distanceDistanceX
(west or east)
and a vertical distanceDistanceY
from the bottom of the text ifDistanceY
> 0, from
the top ifDistanceY
< 0. IfDistanceY
= 0, the text is vertically centered.
Starting the creation of a PostScript file whose name isFileName
.
\psendfig
End of the current PostScript file.
\pssetupdate{no} or \pssetupdate{yes}
Setting the update mode to "Lineyes
" before\psbeginfig
enforces the postscript
file to be recreated at each compilation. The default is "no
".
\pssetdash{Index} or \pssetdash{Pattern}
Setting the line style byIndex
(Index
= 1 (solid) to 10) or byPattern
.
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 byIndex
(Index
= 1 (solid) to 10) or byPattern
.
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
Setting the arrow-head half-angle toAngle
(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 toLength
(in user coordinates).
To switch back to the default value :\pssetarrowheadlength
{\defaultarrowheadlength
}
\pssetarrowheadratio{Ratio}
Setting the arrow-head ratio toRatio
(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
Setting the roundness of a curve toMeshRoundness
(real number).
To switch back to the default value :\pssetroundness
{\defaultroundness
}
Setting the flag that controls the drawing of a grid mesh:Basic drawing macros
. ifIndex
= 1, the SW-NE diagonal is drawn inside each cell,
. ifIndex
= -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
}
\pscirc Center (Radius)
\pscirc Center,Pt1,Pt2 (Radius)
Circle of centerCenter
and of radiusRadius
.
In 3D, the circle is in the plane defined the 3 pointsCenter
,Pt1
andPt2
;
Pt1
andPt2
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 theOther drawing macros
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.
\psarccirc Center ; Radius (Ang1,Ang2)
\psarccirc Center,Pt1,Pt2 ; Radius (Ang1,Ang2)
Circular arc of centerCenter
and radiusRadius
limited by the angles
Ang1
andAng2
given in degrees.
In 2D, the angles are measured counterclockwise.
In 3D, the arc lies in the plane defined by the 3 pointsCenter
,Pt1
andPt2
.
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 centerCenter
and of radiusRadius
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 fromPt1
towardsPt2
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 centerCenter
, of axesXRad
andYRad
, limited by the parametrization
anglesAng1
andAng2
. The major axis is turned by an angleInclination
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 centerCenter
limited by the parametrization anglesAng1
andAng2
.
The end point of the major axis isPtAxis1
and the end point of the minor axis isPtAxis2
.
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 centerArrowCenter
limited by the two half-lines (Center
,Pt1
)
and (Center
,Pt2
). The end point of the major axis isPtAxis1
and the end point
of the minor axis isPtAxis2
. The arc is drawn counterclockwise around the vector
CA1 x CA2, where C=Center
, A1=PtAxis1
, A2=PtAxis2
.
Arrow fromPt1
toPt2
.
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
andPt4
, and the arrow-head at pointPt4
.
\psarrowcirc Center ; Radius (Ang1,Ang2)
\psarrowcirc Center,Pt1,Pt2 ; Radius (Ang1,Ang2)
Circular arrow such that the circular arc is centered atCenter
, has the radiusRadius
and is limited by the anglesAng1
andAng2
given in degrees.
IfAng2
>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 pointsCenter
,Pt1
andPt2
.
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 atCenter
, 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 fromPt1
towardsPt2
turning around the axis (Center
; N):
. counterclockwise ifRadius
> 0,
. clockwise ifRadius
< 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 fromCurvePt1
toPt2
. 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.
\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 theTriangle related macros
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).
Altitude fromPt1
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 lengthGridLength
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.
\psmesh N1,N2 [Pt1,Pt2,Pt3,Pt4]
Mesh ofN1
xN2
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 typeType
triangle on the triangle (Pt1
,Pt2
,Pt3
).