diff options
Diffstat (limited to 'graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.tex')
-rw-r--r-- | graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.tex | 322 |
1 files changed, 251 insertions, 71 deletions
diff --git a/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.tex b/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.tex index 054dae2eb2..86dbdc3cf7 100644 --- a/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.tex +++ b/graphics/pstricks/contrib/pst-eucl/doc/pst-eucl-doc.tex @@ -1,6 +1,5 @@ -\PassOptionsToPackage{style=dtk}{biblatex} -\documentclass[11pt,english,BCOR10mm,DIV=12,bibliography=totoc,parskip=false,smallheadings, - headexclude,footexclude,oneside,english]{pst-doc} +\documentclass[11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small, + headinclude=false,footinclude=false,twoside,english]{pst-doc} \usepackage{pst-eucl} \let\pstEuclideFV\fileversion \usepackage{multicol} @@ -10,20 +9,20 @@ \usepackage[mathscr]{eucal} \def\eV{e.\kern-1pt{}V\kern-1pt} -\lstset{pos=l,wide=false,basicstyle=\footnotesize\ttfamily,explpreset={language=[PSTricks]{TeX}}} +\lstset{pos=l,wide=false,basicstyle=\footnotesize\ttfamily,frame={},rframe={},explpreset={language=[PSTricks]{TeX}}} % \def\Argsans#1{$\langle$#1$\rangle$} \def\DefaultVal#1{(by default #1)} +\usepackage{biblatex} \addbibresource{\jobname.bib} -\lstset{rframe={}} - +\RedeclareSectionCommand[tocnumwidth=3em]{subsection} \title{\texttt{pst-euclide}} \subtitle{A PSTricks package for drawing geometric pictures; v.\pstEuclideFV} -\author{Dominique Rodriguez\\Herbert Voß} -\docauthor{Herbert Voß} +\author{Dominique Rodriguez\and Herbert Voß\and Liao Xiongfei} +\docauthor{Herbert Voß/Liao Xiongfei} \date{\today} \begin{document} \maketitle @@ -57,8 +56,8 @@ \noindent Thanks to: Manuel Luque; -Thomas Söll; -Liao Xiongfei. +Thomas Söll. + @@ -354,8 +353,8 @@ the rule bar and the segment. It does not display the ruler bar as default, and you need to setup \Lkeyword{linestyle} to display it. The star version uses also the star version of the put macro (white background). -\begin{LTXexample}[pos=t] -\begin{pspicture}[showgrid=true](-2,-2)(5,5) +\begin{LTXexample}[width=6cm,pos=l] +\begin{pspicture}[showgrid=true](-1,-1)(4,4) \psset{dotscale=0.5}\psset{PointSymbol=*}\footnotesize \pstGeonode[PosAngle=-90](0.5,1.5){A} \pstGeonode[PosAngle=-90](2.5,1.5){B}\pstLineAB{A}{B} @@ -441,18 +440,20 @@ it output $B(x_2,y_2)$ and $C(x_3,y_3)$. \end{pspicture} \end{LTXexample} -The optional parameter \texttt{pos} setup the position of the first node $A$, it should be 'L' for left, 'R' for right, 'U' for up and 'D' for down. -If you don't input this parameter, the default value is 'L'. The following example explains how to draw an isoceles triangle with the given isoceles sides +The optional parameter \texttt{pos} setup the position of the first node $A$, it should be ':L' for left, ':R' for right, ':U' for up and ':D' for down. +You also can specify one another node $X$ to draw a triangle base on the line $AX$. If you don't input this parameter, the default value is ':L'. +The following example explains how to draw an isoceles triangle with the given isoceles sides and the vertex angle. \begin{LTXexample}[width=6cm,pos=l] \begin{pspicture}[showgrid=true](0,0)(4,4) \psset{dotscale=0.5}\psset{PointSymbol=*}\footnotesize -\pstGeonode[PosAngle=205](2,2){A} -\pstTriangleSAS[linecolor=red!60,PosAngle={-90,90}]{A}(2,40,2){B}{C} -\pstTriangleSAS[linecolor=blue!60,PosAngle={-90,-90}](U){A}(2,40,2){B}{C} -\pstTriangleSAS[linecolor=purple!60,PosAngle={90,90}](D){A}(2,40,2){B}{C} -\pstTriangleSAS[linecolor=green!60,PosAngle={90,-90}](R){A}(2,40,2){B}{C} +\pstGeonode[PosAngle={205,90}](2,2){A}(4,0){X} +\pstTriangleSAS[linecolor=red!60,PosAngle={0,90}]{A}(2,40,2){B}{C} +\pstTriangleSAS[linecolor=blue!60,PosAngle={-90,-90}](:U){A}(2,40,2){B}{C} +\pstTriangleSAS[linecolor=purple!60,PosAngle={90,90}](:D){A}(2,40,2){B}{C} +\pstTriangleSAS[linecolor=green!60,PosAngle={90,-90}](:R){A}(2,40,2){B}{C} +\pstTriangleSAS[linecolor=brown!60,PosAngle={-120,-60}](X){A}(2,40,2){B}{C} \end{pspicture} \end{LTXexample} @@ -490,7 +491,7 @@ For example: \end{lstlisting} The macros \Lcs{pstTriangleGC}, \Lcs{pstTriangleHC}, \Lcs{pstTriangleEC}, \Lcs{pstTriangleNC}, \Lcs{pstTriangleLC} -are used to draw the barycenter $G$, the orthocentre $H$, the escenter $E$, the nine points circle center +are used to draw the barycenter $G$, the orthocentre $H$, the escenter $E$, the nine points circle center and the Lemonie point (or symmedian point) of the triangle $ABC$. \begin{BDef} @@ -1029,7 +1030,7 @@ The length $L_1$ and $L_2$ can be got from \Lcs{pstDist}, \Lcs{pstDistConst}, \psset{dotscale=0.5}\psset{PointSymbol=*}\footnotesize \pstGeonode[PosAngle=90](0,1){A} \pstGeonode[PosAngle=0](3.2,2){C}(3.2,1){D}(3.2,-2){E} -\pstGeometricMean[PosAngle=90]{C}{A}{\pstDistAB{C}{D}}{\pstDistAB{D}{E}}{B} +\pstGeometricMean[PosAngle=90]{C}{A}{\pstDistAB{C}{D}}{\pstDistAB{C}{E}}{B} \pstCircleABC[linecolor=gray!60]{B}{D}{E}{O} \pstLineAB[linecolor=red!40]{C}{D} \pstLineAB[linecolor=blue!40]{D}{E} @@ -1633,11 +1634,11 @@ The macro \Lcs{pstRegularPolygonAB} draw a n-side regular polygon on a given sid The macro \Lcs{pstRegularPolygonOA} draw a n-side regular polygon with center $O$ and base point $A_0$, and output the other nodes $A_1,A_2,\cdots,A_{n-1}$. You can use the parameters \Lkeyword{linestyle}, \Lkeyword{linecolor}, \Lkeyword{linewidth} -to control the line style; and use the parameters \Lkeyword{PointName}, \Lkeyword{PosAngle}, +to control the line style; and use the parameters \Lkeyword{PointName}, \Lkeyword{PosAngle}, \Lkeyword{PointSymbol} to control the point nodes; and use the parameters \Lkeyword{CurveType}, -\Lkeyword{fillstyle}, \Lkeyword{fillcolor} to control the polygon style. +\Lkeyword{fillstyle}, \Lkeyword{fillcolor} to control the polygon style. -For the last output point list in macro \Lcs{pstRegularPolygonAB} and \Lcs{pstRegularPolygonOA}, if you do not enter a complete point list, +For the last output point list in macro \Lcs{pstRegularPolygonAB} and \Lcs{pstRegularPolygonOA}, if you do not enter a complete point list, the remaining points will be automatically named. Note that draw regular polygon with side from $A$ to $B$ and side from $B$ to $A$ will get the figure symmetric to $AB$. @@ -1647,10 +1648,10 @@ Here are some examples. \begin{pspicture}[showgrid](-1,-2)(3,2) \psset{unit=0.40cm}\footnotesize\psset{PointSymbol=none,PointNameSep=0.22cm} \pstGeonode[PosAngle={180,0},PointSymbol=*](0,0){A}(5,0){B} -\pstETriangleAB[linecolor=red!60,PosAngle=90,PointSymbol=*]{A}{B}{C} -\pstETriangleAB[linecolor=blue!60,PosAngle=-90,PointSymbol=*,fillstyle=solid,fillcolor=blue!20]{B}{A}{C'} \pstSquareAB[linecolor=red!60,PosAngle={90,90},PointSymbol=*]{A}{B}{C}{D} \pstSquareAB[linecolor=blue!60,PosAngle={-90,-90},PointSymbol=*,fillstyle=solid,fillcolor=blue!20,opacity=0.2]{B}{A}{C'}{D'} +\pstETriangleAB[linecolor=red!60,PosAngle=90,PointSymbol=*]{A}{B}{C} +\pstETriangleAB[linecolor=blue!60,PosAngle=-90,PointSymbol=*,fillstyle=solid,fillcolor=blue!20]{B}{A}{C'} \end{pspicture} \end{LTXexample} @@ -2182,7 +2183,7 @@ are same with \Lcs{pstGeneralEllipseFle}. They are set to zero if the points are \begin{LTXexample}[width=6cm,pos=l] \begin{pspicture}[showgrid=true](-1,-2)(5,4) -\psset{unit=1.0cm}\footnotesize\psset{PointSymbol=*} +\psset{unit=0.8cm}\footnotesize\psset{PointSymbol=*} \psset{CodeFig=true,CodeFigColor=gray!50} \pstGeonode[PosAngle=180](0,0){A} \pstGeonode[PosAngle=-90](2,-1){B} @@ -2490,23 +2491,23 @@ then $TA$ is the tangent line through $A$ and $TB$ is the tangent line through $ \end{pspicture} \end{LTXexample} -\subsection{Standard Inversion Parabola} -The Inversion Parabola $P$ with coordinate translation is defined by vertex $O(x_0,y_0)$, +\subsection{Standard Conjugate Parabola} +The Conjugate Parabola $P$ with coordinate translation is defined by vertex $O(x_0,y_0)$, the half of the focus chord axis $abs(p)$. Note that the sign of $p$ indicates the direction of the parabola. The equation can be written as: -\begin{equation}\label{StandardInversionParabola} +\begin{equation}\label{StandardConjugateParabola} (y-y_0)^2=2p(x-x_0) \end{equation} and the parametric function can be written as: -\begin{equation}\label{ParametricFunctionOfStandardInversionParabola} +\begin{equation}\label{ParametricFunctionOfStandardConjugateParabola} \left\{\begin{array}{l} x=\dfrac{t^2}{2p}+x_0\\ y=t+y_0 \end{array}\right. \end{equation} -The macro \Lcs{pstIParabola} is used to draw a Standard Inversion Parabola from $y_1$ to $y_2$ with Vertex $O$, +The macro \Lcs{pstIParabola} is used to draw a Standard Conjugate Parabola from $y_1$ to $y_2$ with Vertex $O$, the half of the focus chord axis $abs(p)$. \begin{BDef} @@ -2514,7 +2515,7 @@ the half of the focus chord axis $abs(p)$. \end{BDef} The macro \Lcs{pstIParabolaNode} is used to draw a node whose parameter is the given value $t$ on parabola, -please refer to equation (\ref{ParametricFunctionOfStandardInversionParabola}). +please refer to equation (\ref{ParametricFunctionOfStandardConjugateParabola}). The macro \Lcs{pstIParabolaAbsNode} is used to draw a node whose abscissa is the given value $x_1$ on parabola. The macro \Lcs{pstIParabolaOrdNode} is used to draw a node whose ordinate is the given value $y_1$ on parabola. Note that \Lcs{pstIParabolaAbsNode} will create two nodes $A$ and $B$ at most time. @@ -2889,7 +2890,7 @@ Here is the intersections of a real General Parabola with any kind of lines: \end{pspicture} \end{LTXexample} -When General Parabola becomes a Standard Inversion Parabola, the intersections with any kind of lines: +When General Parabola becomes a Standard Conjugate Parabola, the intersections with any kind of lines: \begin{LTXexample}[width=6cm,pos=l] \begin{pspicture}[showgrid=true](-1,-2)(3,2) \psset{dotscale=0.5}\psset{PointSymbol=*}\footnotesize @@ -2954,12 +2955,12 @@ We also use the theorem \ref{ParabolaTangentPointTheorem} to find the tangent no \end{pspicture} \end{LTXexample} -\subsection{General Inversion Parabola} -The General Inversion Parabola $P$ with coordinate translation and rotation is defined by vertex $O$, +\subsection{General Conjugate Parabola} +The General Conjugate Parabola $P$ with coordinate translation and rotation is defined by vertex $O$, the half of the focus chord axis $abs(p)$, the sign of $p$ indicates the direction of the parabola, and the rotation angle $\theta$ of the symmetrical axis. -The equation can be got from the parametric function of the inversion parabola (\ref{ParametricFunctionOfStandardInversionParabola}), +The equation can be got from the parametric function of the conjugate parabola (\ref{ParametricFunctionOfStandardConjugateParabola}), using the rotation transform formula (\ref{RotationTransformFormula}), then we have \begin{equation} \left\{\begin{array}{l} @@ -2968,15 +2969,15 @@ y'=(\dfrac{t^2}{2p}+x_0)\sin\theta+(t+y_0)\cos\theta=y_0'+t\cos\theta+t^2\dfrac{ \end{array}\right. \end{equation} where the $x_0'$ and $y_0'$ are the coordinate of the given vertex O after rotation. -So we get the parametric function of the General Inversion Parabola with coordinate translation and rotation as following: -\begin{equation}\label{ParametricFunctionOfGeneralInversionParabola} +So we get the parametric function of the General Conjugate Parabola with coordinate translation and rotation as following: +\begin{equation}\label{ParametricFunctionOfGeneralConjugateParabola} \left\{\begin{array}{l} x=x_0-t\sin\theta+t^2\dfrac{\cos\theta}{2p}\\ y=y_0+t\cos\theta+t^2\dfrac{\sin\theta}{2p} \end{array}\right. \end{equation} -The macro \Lcs{pstGeneralIParabola} is used to draw a Standard Inversion Parabola from $y_1$ to $y_2$ with Vertex $O$, +The macro \Lcs{pstGeneralIParabola} is used to draw a Standard Conjugate Parabola from $y_1$ to $y_2$ with Vertex $O$, the half of the focus chord axis $abs(p)$. \begin{BDef} @@ -2984,7 +2985,7 @@ the half of the focus chord axis $abs(p)$. \end{BDef} The macro \Lcs{pstGeneralIParabolaNode} is used to draw a node whose parameter is the given value $t$ on parabola, -please refer to equation (\ref{ParametricFunctionOfGeneralInversionParabola}). +please refer to equation (\ref{ParametricFunctionOfGeneralConjugateParabola}). The macro \Lcs{pstGeneralIParabolaAbsNode} is used to draw a node whose abscissa is the given value $x_1$ on parabola. The macro \Lcs{pstGeneralIParabolaOrdNode} is used to draw a node whose ordinate is the given value $y_1$ on parabola. @@ -3327,22 +3328,22 @@ $RQ$ and $PS$ intersect at $Y$, then the intersection points $A$ and $B$ of $XY$ \end{pspicture} \end{LTXexample} -\subsection{Standard Inversion Hyperbola} -The Standard Inversion Hyperbola $H$ with coordinate translation is defined by center $O$, +\subsection{Standard Conjugate Hyperbola} +The Standard Conjugate Hyperbola $H$ with coordinate translation is defined by center $O$, the half of the real axis $a$, the half of the imaginary axis $b$. The equation can be written as: -\begin{equation}\label{FunctionOfStandardInversionHyperbola} +\begin{equation}\label{FunctionOfStandardConjugateHyperbola} \dfrac{(y-y_0)^2}{a^2}-\dfrac{(x-x_0)^2}{b^2}=1 \end{equation} and the parametric function can be written as: -\begin{equation}\label{ParametricFunctionOfStandardInversionHyperbola} +\begin{equation}\label{ParametricFunctionOfStandardConjugateHyperbola} \left\{\begin{array}{l} x=b\tan\alpha+x_0\\ y=a\sec\alpha+y_0 \end{array}\right. \end{equation} -The macro \Lcs{pstIHyperbola} is used to draw a Standard Inversion Hyperbola with Center $O$, +The macro \Lcs{pstIHyperbola} is used to draw a Standard Conjugate Hyperbola with Center $O$, the half of the real axis $a$, the half of the imaginary axis $b$. The parameter \texttt{angleY} is used to truncate the height of the figure, it should be setup from 0 to 90. @@ -3351,10 +3352,10 @@ it should be setup from 0 to 90. \Lcs{pstIHyperbola}\OptArgs\Largr{O}\Largr{$a,\,b$}\OptArg{angleY} \end{BDef} -The macro \Lcs{pstIHyperbolaNode} is used to draw a node whose parameter is the given value $t$ on Inversion Hyperbola, -please refer to equation (\ref{ParametricFunctionOfStandardInversionHyperbola}). -The macro \Lcs{pstIHyperbolaAbsNode} is used to draw the nodes whose abscissa are the given value $x_1$ on Inversion Hyperbola. -The macro \Lcs{pstIHyperbolaOrdNode} is used to draw the nodes whose ordinate are the given value $y_1$ on Inversion Hyperbola. +The macro \Lcs{pstIHyperbolaNode} is used to draw a node whose parameter is the given value $t$ on Conjugate Hyperbola, +please refer to equation (\ref{ParametricFunctionOfStandardConjugateHyperbola}). +The macro \Lcs{pstIHyperbolaAbsNode} is used to draw the nodes whose abscissa are the given value $x_1$ on Conjugate Hyperbola. +The macro \Lcs{pstIHyperbolaOrdNode} is used to draw the nodes whose ordinate are the given value $y_1$ on Conjugate Hyperbola. Note that \Lcs{pstIHyperbolaAbsNode} and \Lcs{pstIHyperbolaOrdNode} will create two nodes $A$ and $B$ at most time. @@ -3380,8 +3381,8 @@ Note that \Lcs{pstIHyperbolaAbsNode} and \Lcs{pstIHyperbolaOrdNode} will create \end{pspicture} \end{LTXexample} -The macro \Lcs{pstIHyperbolaFocusNode} is used to find the focus nodes of the Inversion Hyperbola, -and the macro \Lcs{pstIHyperbolaDirectrixLine} is used to find the directrix lines of the Inversion Hyperbola. +The macro \Lcs{pstIHyperbolaFocusNode} is used to find the focus nodes of the Conjugate Hyperbola, +and the macro \Lcs{pstIHyperbolaDirectrixLine} is used to find the directrix lines of the Conjugate Hyperbola. \begin{BDef} \Lcs{pstIHyperbolaFocusNode}\OptArgs\Largr{O}\Largr{$a,\,b$}\Largb{$F_1$}\Largb{$F_2$}\\ @@ -3784,11 +3785,11 @@ We also use the theorem \ref{HyperbolaTangentPointTheorem} to find the tangent p \end{pspicture} \end{LTXexample} -\subsection{General Inversion Hyperbola} -The General Inversion Hyperbola $H$ with coordinate translation and rotation is defined by center $O$, +\subsection{General Conjugate Hyperbola} +The General Conjugate Hyperbola $H$ with coordinate translation and rotation is defined by center $O$, the half of the real axis $a$, the half of the imaginary axis $b$, and the rotation angle $\theta$ of the principal axis. -The equation can be got from the parametric function of the Standard Inversion Hyperbola equation (\ref{ParametricFunctionOfStandardInversionHyperbola}), +The equation can be got from the parametric function of the Standard Conjugate Hyperbola equation (\ref{ParametricFunctionOfStandardConjugateHyperbola}), using the rotation transform formula (\ref{RotationTransformFormula}), then we have \begin{equation} \left\{\begin{array}{l} @@ -3797,15 +3798,15 @@ y'=(b\tan\alpha+x_0)\sin\theta+(a\sec\alpha+y_0)\cos\theta=y_0'+b\tan\alpha\sin\ \end{array}\right. \end{equation} where the $x_0'$ and $y_0'$ are the coordinate of the given center $O$ after rotation. -So we get the parametric function of the General Inversion Hyperbola with coordinate translation and rotation as following: -\begin{equation}\label{ParametricFunctionOfGeneralInversionHyperbola} +So we get the parametric function of the General Conjugate Hyperbola with coordinate translation and rotation as following: +\begin{equation}\label{ParametricFunctionOfGeneralConjugateHyperbola} \left\{\begin{array}{l} x=x_0+b\tan\alpha\cos\theta-a\sec\alpha\sin\theta\\ y=y_0+b\tan\alpha\sin\theta+a\sec\alpha\cos\theta \end{array}\right. \end{equation} -The macro \Lcs{pstGeneralIHyperbola} is used to draw a General Inversion Hyperbola with Center $O$, +The macro \Lcs{pstGeneralIHyperbola} is used to draw a General Conjugate Hyperbola with Center $O$, the half of the real axis $a$, the half of the imaginary axis $b$, and the rotation angle $\theta$ of the symmetrical axis. The parameter \texttt{angleY} is used to truncate the height of the figure, @@ -3831,11 +3832,11 @@ it should be setup from 0 to 90. \end{pspicture} \end{LTXexample} -The macro \Lcs{pstGeneralIHyperbolaNode} is used to draw a node whose parameter is the given value $t$ on General Inversion Hyperbola, -please refer to equation (\ref{ParametricFunctionOfGeneralInversionHyperbola}). +The macro \Lcs{pstGeneralIHyperbolaNode} is used to draw a node whose parameter is the given value $t$ on General Conjugate Hyperbola, +please refer to equation (\ref{ParametricFunctionOfGeneralConjugateHyperbola}). -The macro \Lcs{pstGeneralIHyperbolaAbsNode} is used to draw the nodes whose abscissa are the given value $x_1$ on General Inversion Hyperbola. -The macro \Lcs{pstGeneralIHyperbolaOrdNode} is used to draw the nodes whose ordinate are the given value $y_1$ on General Inversion Hyperbola. +The macro \Lcs{pstGeneralIHyperbolaAbsNode} is used to draw the nodes whose abscissa are the given value $x_1$ on General Conjugate Hyperbola. +The macro \Lcs{pstGeneralIHyperbolaOrdNode} is used to draw the nodes whose ordinate are the given value $y_1$ on General Conjugate Hyperbola. Note that \Lcs{pstGeneralIHyperbolaAbsNode} and \Lcs{pstGeneralIHyperbolaOrdNode} will create two nodes $A$ and $B$ at most time. @@ -3863,9 +3864,9 @@ Note that \Lcs{pstGeneralIHyperbolaAbsNode} and \Lcs{pstGeneralIHyperbolaOrdNode \end{pspicture} \end{LTXexample} -The macro \Lcs{pstGeneralIHyperbolaFocusNode} is used to find the focus nodes of the General Inversion Hyperbola, -the macro \Lcs{pstGeneralIHyperbolaVertexNode} is used to find the vertex nodes of the General Inversion Hyperbola, -and the macro \Lcs{pstGeneralIHyperbolaDirectrixLine} is used to find the directrix lines of the General Inversion Hyperbola. +The macro \Lcs{pstGeneralIHyperbolaFocusNode} is used to find the focus nodes of the General Conjugate Hyperbola, +the macro \Lcs{pstGeneralIHyperbolaVertexNode} is used to find the vertex nodes of the General Conjugate Hyperbola, +and the macro \Lcs{pstGeneralIHyperbolaDirectrixLine} is used to find the directrix lines of the General Conjugate Hyperbola. \begin{BDef} \Lcs{pstGeneralIHyperbolaFocusNode}\OptArgs\Largr{O}\Largr{$a,\,b$}\OptArg{$\theta$}\Largb{$F_1$}\Largb{$F_2$}\\ @@ -3901,7 +3902,7 @@ as the other one is the center of the hyperbola. \end{LTXexample} -The macro \Lcs{pstGeneralIHyperbolaLineInter} is used to find the intersections $C$ and $D$ of the general inversion hyperbola and the given line $AB$. +The macro \Lcs{pstGeneralIHyperbolaLineInter} is used to find the intersections $C$ and $D$ of the general conjugate hyperbola and the given line $AB$. \begin{BDef} \Lcs{pstGeneralIHyperbolaLineInter}\OptArgs\Largr{O}\Largr{$a,\,b$}\OptArg{$\theta$}\Largb{$A$}\Largb{$B$}\Largb{$C$}\Largb{$D$} @@ -3930,7 +3931,7 @@ so there are only one intersection $M$ and $P$ for each line, and the second nod \end{pspicture} \end{LTXexample} -The macro \Lcs{pstGeneralIHyperbolaPolarNode} is used to find the polar point $T$ of chord $AB$ on the general inversion hyperbola. +The macro \Lcs{pstGeneralIHyperbolaPolarNode} is used to find the polar point $T$ of chord $AB$ on the general conjugate hyperbola. \begin{BDef} \Lcs{pstGeneralIHyperbolaPolarNode}\OptArgs\Largr{O}\Largr{$a,\,b$}\OptArg{$\theta$}\Largb{$A$}\Largb{$B$}\Largb{$T$} @@ -3951,7 +3952,7 @@ We also use the theorem \ref{HyperbolaPolarPointTheorem} to find the polar point \end{pspicture} \end{LTXexample} -The macro \Lcs{pstGeneralIHyperbolaTangentNode} is used to find the tangent point $A$ and $B$ of point $T$ outside of the general inversion hyperbola. +The macro \Lcs{pstGeneralIHyperbolaTangentNode} is used to find the tangent point $A$ and $B$ of point $T$ outside of the general conjugate hyperbola. \begin{BDef} \Lcs{pstGeneralIHyperbolaTangentNode}\OptArgs\Largr{O}\Largr{$a,\,b$}\OptArg{$\theta$}\Largb{$T$}\Largb{$A$}\Largb{$B$} @@ -3970,6 +3971,187 @@ We also use the theorem \ref{HyperbolaTangentPointTheorem} to find the tangent p \end{pspicture} \end{LTXexample} +\vspace{20pt} +\subsection{General Conics} +A General Conic is defined by the quadratic curve equation +\begin{equation}\label{QuadraticCurveEquation} +ax^2+bxy+cy^2+dx+ey+f=0 +\end{equation} +it can be reduced to an ellipse, hyperbola or parabola after translation and rotation. + +In the previous sections, we use the macros \Lcs{pstGeneralEllipseCoef}, \Lcs{pstGeneralHyperbolaCoef}, \Lcs{pstGeneralParabolaCoef} to define the +general ellipse, general hyperbola and general parabola from the quadratic curve equation (\ref{QuadraticCurveEquation}). +Here we provide the macros \Lcs{pstGeneralConicEquation}, \Lcs{pstGeneralEllipseEquation}, \Lcs{pstGeneralHyperbolaEquation} +and \Lcs{pstGeneralParabolaEquation} to get the coefficients $a,b,c,d,e,f$ of their quadratic curve equation (\ref{QuadraticCurveEquation}). + +\vspace{10pt} + +\begin{BDef} +\Lcs{pstGeneralConicEquation}\OptArgs\Largb{A}\Largb{B}\Largb{C}\Largb{D}\Largb{E}\Largb{F}\Largb{a,b,c,d,e,f}\\ +\Lcs{pstGeneralEllipseEquation}\OptArgs\Largr{O}\Largr{a,b}\OptArg{$\theta$}\Largb{a,b,c,d,e,f}\\ +\Lcs{pstGeneralHyperbolaEquation}\OptArgs\Largr{O}\Largr{a,b}\OptArg{$\theta$}\Largb{a,b,c,d,e,f}\\ +\Lcs{pstGeneralParabolaEquation}\OptArgs\Largr{O}\Largb{p}\OptArg{$\theta$}\Largb{a,b,c,d,e,f} +\end{BDef} + +The macro \Lcs{pstGeneralConicEquation} take five points $A,B,C,D,E$ as input parameter; +the macro \Lcs{pstGeneralEllipseEquation} take the general ellipse parameter $O,a,b,\theta$ as input parameter; +the macro \Lcs{pstGeneralHyperbolaEquation} take the general hyperbola parameter $O,a,b,\theta$ as input parameter; +the macro \Lcs{pstGeneralParabolaEquation} take the general parabola parameter $O,p,\theta$ as input parameter. +They all output the six coefficients $a,b,c,d,e,f$ of the quadratic curve equation. + +Note that the output coefficients $a,b,c,d,e,f$ are the variables in \PS\ level, +they will be dumped out in \PS's console when you set \Lkeyword{CodeFig} to \Lkeyword{true}. +You can pass them into the macros where need these six coefficients. +In order to prevent the name conflict in \PS\ level, +You should setup the name of the coefficients more than three letters, for example, + +\vspace{10pt} + +\begin{lstlisting} +% calculate the coefficients CoefA,CoefB,...,CoefF and CoefA',CoefB',...,CoefF' +\pstGeneralConicEquation{A}{B}{C}{D}{E}{CoefA,CoefB,CoefC,CoefD,CoefE,CoefF} +\pstGeneralConicEquation{A'}{B'}{C'}{D'}{E'}{CoefA',CoefB',CoefC',CoefD',CoefE',CoefF'} +% then use them to find the intersections +\pstGeneralConicInter{CoefA,CoefB,CoefC,CoefD,CoefE,CoefF}{CoefA',CoefB',CoefC',CoefD',CoefE',CoefF'}{I}{J}{I'}{J'} +\end{lstlisting} + +\clearpage + +The following example output the coefficients $a,b,c,d,e,f$ for the ellipse defined by five points, and then draw the ellipse using these coefficients to check the result. +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid=true](-1,-2)(4,3) +\psset{unit=0.6cm}\footnotesize\psset{PointSymbol=*} +\psset{CodeFig=false,CodeFigColor=gray!50} +\pstGeonode[PosAngle={180,-90,90,-90,0}](0,0){A}(2,-1){B}(3,3){C}(4,0){D}(5,2){E} +\pstGeneralEllipseABCDE[PosAngle=0]{A}{B}{C}{D}{E}{O}{R}{RotAngle} +\pstGeneralEllipse[linecolor=red!60](O)(R)[RotAngle] +\pstGeneralEllipseEquation(O)(R)[RotAngle]{a,b,c,d,e,f} +\pstGeneralEllipseCoef[PosAngle=-80,CodeFigColor=blue!50]{a,b,c,d,e,f}{O'}{R'}{RotAngle1} +\pstGeneralEllipse[linecolor=blue!60](O')(R')[RotAngle1][0][240] +\end{pspicture} +\end{LTXexample} + +\vspace{10pt} +The following example output the coefficients $a,b,c,d,e,f$ for the hyperbola $2xy-x+2y+1=0$, just for example, and then draw the hyperbola using these coefficients to check the result. +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid=true](-3,-2)(2,2) +\psset{unit=0.6cm}\footnotesize\psset{PointSymbol=*} +\psset{CodeFig=false,CodeFigColor=gray!50} +% 2xy-x+2y+1=0 +\pstGeneralHyperbolaCoef[PosAngle=-100,CodeFigColor=red!50]{0,2,0,-1,2,1}{O_1}{R_1}{RotAngle} +\pstGeneralHyperbola[linecolor=blue!60](O_1)(R_1)[RotAngle][56] +\pstGeneralHyperbolaEquation(O_1)(R_1)[RotAngle]{a,b,c,d,e,f} +\pstGeneralHyperbolaCoef[PosAngle=-10,CodeFigColor=red!60]{a,b,c,d,e,f}{O_2}{R_2}{RotAngle1} +\pstGeneralHyperbola[linecolor=red](O_2)(R_2)[RotAngle1][25] +\end{pspicture} +\end{LTXexample} + +\vspace{10pt} +The following example output the coefficients $a,b,c,d,e,f$ for the parabola defined by five points, and then draw the parabola using these coefficients to check the result. +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid=true](0,-2)(4,2) +\psset{unit=0.6cm}\footnotesize\psset{PointSymbol=*} +\psset{CodeFig=false,CodeFigColor=gray!50} +% five points from y^2-2x+3=0 +\pstGeonode[PosAngle={90,90,-90,90,-90}](3,1.73205){A}(2,1){B}(2,-1){C}(6,3){D}(6,-3){E} +\pstGeneralParabolaABCDE[PosAngle=235]{A}{B}{C}{D}{E}{O}{P}{RotAngle} +\pstGeneralParabola[linecolor=blue!60](O){P}[RotAngle]{-3}{3} +\pstGeneralParabolaEquation(O){P}[RotAngle]{a,b,c,d,e,f} +\pstGeneralParabolaCoef[PosAngle=140,CodeFigColor=black!60]{a,b,c,d,e,f}{O_2}{P2}{RotAngle1} +\pstGeneralParabola[linecolor=red](O_2){P2}[RotAngle1]{-2}{2} +\end{pspicture} +\end{LTXexample} + +\clearpage +Here are some macros to find the intersections with the quadratic curve equation (\ref{QuadraticCurveEquation}). + +\begin{BDef} +\Lcs{pstGeneralConicLineInter}\OptArgs\Largb{A}\Largb{B}\Largb{a,b,c,d,e,f}\Largb{C}\Largb{D}\\ +\Lcs{pstGeneralConicCircleInter}\OptArgs\Largb{O}\Largb{A}\Largb{a,b,c,d,e,f}\Largb{C}\Largb{D}\Largb{E}\Largb{F}\\ +\Lcs{pstGeneralConicEllipseInter}\OptArgs\Largr{O}\Largr{m,n}\Largb{a,b,c,d,e,f}\Largb{C}\Largb{D}\Largb{E}\Largb{F}\\ +\Lcs{pstGeneralConicHyperbolaInter}\OptArgs\Largr{O}\Largr{m,n}\Largb{a,b,c,d,e,f}\Largb{C}\Largb{D}\Largb{E}\Largb{F}\\ +\Lcs{pstGeneralConicIHyperbolaInter}\OptArgs\Largr{O}\Largr{m,n}\Largb{a,b,c,d,e,f}\Largb{C}\Largb{D}\Largb{E}\Largb{F}\\ +\Lcs{pstGeneralConicParabolaInter}\OptArgs\Largr{O}\Largb{p}\Largb{a,b,c,d,e,f}\Largb{C}\Largb{D}\Largb{E}\Largb{F}\\ +\Lcs{pstGeneralConicIParabolaInter}\OptArgs\Largr{O}\Largb{p}\Largb{a,b,c,d,e,f}\Largb{C}\Largb{D}\Largb{E}\Largb{F}\\ +\Lcs{pstGeneralConicInter}\Largb{a,b,c,d,e,f}\Largb{a',b',c',d',e',f'}\Largb{C}\Largb{D}\Largb{E}\Largb{F} +\end{BDef} + +\noindent +The macro \Lcs{pstGeneralConicLineInter} is used to find the intersections $C,D$ of the quadratic curve equation (\ref{QuadraticCurveEquation}) and the given line $AB$.\\[1mm]\noindent +The macro \Lcs{pstGeneralConicCircleInter} is used to find the intersections $C,D,E,F$ of the quadratic curve equation (\ref{QuadraticCurveEquation}) and the given circle $(x-x_A)^2+(y-y_A)^2=|OA|^2$.\\[1mm]\noindent +The macro \Lcs{pstGeneralConicEllipseInter} is used to find the intersections $C,D,E,F$ of the quadratic curve equation (\ref{QuadraticCurveEquation}) and the given ellipse $\dfrac{(x-x_O)^2}{m^2}+\dfrac{(y-y_O)^2}{n^2}=1$.\\[1mm]\noindent +The macro \Lcs{pstGeneralConicHyperbolaInter} is used to find the intersections $C,D,E,F$ of the quadratic curve equation (\ref{QuadraticCurveEquation}) and the given hyperbola $\dfrac{(x-x_O)^2}{m^2}-\dfrac{(y-y_O)^2}{n^2}=1$.\\[1mm]\noindent +The macro \Lcs{pstGeneralConicIHyperbolaInter} is used to find the intersections $C,D,E,F$ of the quadratic curve equation (\ref{QuadraticCurveEquation}) and the given conjugate hyperbola $\dfrac{(y-y_O)^2}{m^2}-\dfrac{(x-x_O)^2}{n^2}=1$.\\[1mm]\noindent +The macro \Lcs{pstGeneralConicParabolaInter} is used to find the intersections $C,D,E,F$ of the quadratic curve equation (\ref{QuadraticCurveEquation}) and the given parabola $(x-x_O)^2=2p(y-y_O)$.\\[1mm]\noindent +The macro \Lcs{pstGeneralConicIParabolaInter} is used to find the intersections $C,D,E,F$ of the quadratic curve equation (\ref{QuadraticCurveEquation}) and the given conjugate parabola $(y-y_O)^2=2p(x-x_O)$.\\[1mm]\noindent +The macro \Lcs{pstGeneralConicInter} is used to find the intersections $C,D,E,F$ of the quadratic curve equation (\ref{QuadraticCurveEquation}) and the other one.\\\noindent + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid=true](-4,-2)(1,2)\footnotesize +\psset{unit=0.5cm,PointSymbol=*,dotscale=0.5,PointNameSep=0.24cm} +\pstGeonode[PosAngle={0,-90}](-2,0){A}(-3,-2){B} +\pstGeneralEllipseCoef[PosAngle=120]{1,2,4,6,8,1}{O}{R}{RotAngle} +\pstGeneralEllipse[linecolor=blue!60](O)(R)[RotAngle] +\pstGeneralConicLineInter[PosAngle={200,110}]{A}{B}{1,2,4,6,8,1}{C}{D} +\pstGeneralConicCircleInter[PosAngle={-120,120,-65,60}]{O}{B}{1,2,4,6,8,1}{E}{F}{E'}{F'} +\pstGeneralConicEllipseInter[PosAngle={210,120,-45,45}](O)(3,4){1,2,4,6,8,1}{G}{H}{G'}{H'} +\pstGeneralConicHyperbolaInter[PosAngle={75,215,45,240}](O)(2,3){1,2,4,6,8,1}{I}{J}{I'}{J'} +\pstGeneralConicParabolaInter[PosAngle={215,-90},PointName={M,N,none},PointSymbol={*,*,none}](O){8}{1,2,4,6,8,1}{M}{N}{M'}{N'} +\pstLineAB[linecolor=gray!80]{C}{D} +\pstCircleOA[linecolor=gray!80]{O}{B} +\pstEllipse[linecolor=gray!80](O)(3,4) +\pstHyperbola[linecolor=gray!80](O)(2,3)[56] +\pstParabola[linecolor=gray!80](O){8}{-4}{4} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid=true](-3,-2)(1,3)\footnotesize +\psset{unit=0.5cm,PointSymbol=*,dotscale=0.5,PointNameSep=0.24cm} +\pstGeonode[PosAngle={-90,-90}](-1.8,1){O} +\pstEllipse[linecolor=gray!80](O)(4,3) +\pstGeneralEllipse[linecolor=blue!60](O)(3,4)[32] +\pstGeneralEllipse[linecolor=cyan!60](O)(3,4)[65] +\pstGeneralEllipseEquation[CodeFig=false](O)(3,4)[32]{Ea,Eb,Ec,Ed,Ee,Ef} +\pstGeneralEllipseEquation[CodeFig=false](O)(3,4)[65]{Ea',Eb',Ec',Ed',Ee',Ef'} +\pstGeneralConicEllipseInter[PosAngle={-20,240,50,150}](O)(4,3){Ea,Eb,Ec,Ed,Ee,Ef}{C}{D}{C'}{D'} +\pstGeneralConicEllipseInter[PosAngle={150,90,-100,-40}](O)(4,3){Ea',Eb',Ec',Ed',Ee',Ef'}{E}{F}{E'}{F'} +\pstGeneralConicInter[PosAngle={100,60,240,-50}]{Ea,Eb,Ec,Ed,Ee,Ef}{Ea',Eb',Ec',Ed',Ee',Ef'}{G}{H}{G'}{H'} +\end{pspicture} +\end{LTXexample} + +Here are some macros to find the tangent line or tangent chord of the quadratic curve equation (\ref{QuadraticCurveEquation}). + +\vspace{10pt} + +\begin{BDef} +\Lcs{pstGeneralConicTangentLine}\OptArgs\Largb{A}\Largb{a,b,c,d,e,f}\Largb{B}\\ +\Lcs{pstGeneralConicTangentChord}\OptArgs\Largb{T}\Largb{a,b,c,d,e,f}\Largb{A}\Largb{B} +\end{BDef} + +The macro \Lcs{pstGeneralConicTangentLine} find the Tangent Line of the quadratic curve through +the point $A$ which is lie on the curve, output the other node $B$ on the tangent line. +The macro \Lcs{pstGeneralConicTangentChord} find the Tangent Chord of the quadratic curve through +the point $T$ which is not lie on the curve, output the tangent point $A$ and $B$ on the curve. + +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid=true](-2,-2)(2,2)\footnotesize +\psset{unit=0.3cm,PointSymbol=*,dotscale=0.5,PointNameSep=0.24cm} +\pstGeonode[PosAngle={-90,-10,190,150,180}](3,1){A}(2,3){B}(-1.5,2){C}(-3,-5){D}(-2.0,-2.2){E} +\pstGeneralConicEquation{A}{B}{C}{D}{E}{GCoefA,GCoefB,GCoefC,GCoefD,GCoefE,GCoefF} +\pstGeneralHyperbolaCoef[PosAngle=-30]{GCoefA,GCoefB,GCoefC,GCoefD,GCoefE,GCoefF}{O}{R}{RotAngle} +\pstGeneralHyperbola[linecolor=blue!40](O)(R)[RotAngle][72] +\pstGeneralConicTangentLine[PosAngle={-70}]{E}{GCoefA,GCoefB,GCoefC,GCoefD,GCoefE,GCoefF}{F} +\pstLineAB[linecolor=gray!60,nodesepA=-1]{E}{F} +\pstGeonode[PosAngle=-90](1.8,-1.5){T} +\pstGeneralConicTangentChord[PosAngle={20,60}]{T}{GCoefA,GCoefB,GCoefC,GCoefD,GCoefE,GCoefF}{M}{N} +\pstLineAB[linecolor=red!60]{M}{N} +\pstLineAB[linecolor=gray!60,nodesepB=-1]{T}{M} +\pstLineAB[linecolor=gray!60,nodesepB=-1]{T}{N} +\end{pspicture} +\end{LTXexample} + +\clearpage \section{Geometric Transformations} The geometric transformations are the ideal tools to construct geometric figures. All @@ -4534,7 +4716,7 @@ and \Lkeyword{PosAngleB} to change the default behavior. This function put a point at the intersection between two curves defined by a function. $x_0$ is an intersection approximated value of -the abscissa. It is obviously possible to ise this function several +the abscissa. It is obviously possible to use this function several time if more than one intersection is present. Each function is describerd in \PS in the same way as the description used by the \Lcs{psplot} macro of \PST. A constant function can be @@ -5401,5 +5583,3 @@ crossing a given point. \end{document} - - |