Kobordismus mit PStricks

Kobordismus mit PStricks

Ich versuche, die Mittellinie loszuwerden. Egal, welche Änderungen ich vornehme, es scheint, als würde ich es schlimmer machen. Ich wäre dankbar, wenn mir jemand zeigen könnte, wie man diesen Kobordismus richtig zeichnet.

\begin{pspicture}
  \pscustom{
         \psbezier[showpoints=true](1.5,2.5)(1.5,1.1)(.4,1.6)(.5,0)
         \psline(-0.5,0)
         \psbezier[showpoints=true](-0.5,0)(-.4,1.6)(-1.5,1.1)(-1.5,2.5)
         \psline(-.5,2.5)
         \psbezier[showpoints=true](-.5,2.5)(-.6,1.5)(0.6,1.5)(.5,2.5)
         \psline(1.5,2.5)}
\end{pspicture}

Kolben

Antwort1

Normale Methode

\documentclass[pstricks,border=12pt]{standalone}


\begin{document}
\begin{pspicture}[showgrid=true](-2,-1)(2,3)
    \pscustom
    {
        \psset{showpoints}
        \psbezier(1.5,2.5)(1.5,1.1)(.4,1.6)(.5,0)
        \psbezier(-.5,0)(-.4,1.6)(-1.5,1.1)(-1.5,2.5)
        \psbezier[liftpen=1](-.5,2.5)(-.6,1.5)(.6,1.5)(.5,2.5)
        \closepath
    }
\end{pspicture}
\end{document}

Bildbeschreibung hier eingeben

Abnormale Methode

\reversepathSymmetrische Eigenschaften werden mit , , usw. berücksichtigt \scale. Leider können \nodexnund (!N-<nodename>.x N-<nodename>.y)hier nicht zusammen verwendet werden, wodurch der Code zu kompliziert wird.

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-eucl}
\psset{saveNodeCoors}

\begin{document}

\begin{pspicture}[showgrid=true](-2,-1)(2,3)
\pstGeonode[PointName=none,PointSymbol=none]
    (.5,2.5){A}
    (.6,1.5){B}
    (-.6,1.5){C}
    (-.5,2.5){D}
    % P = (A + B)/2
    (!N-A.x N-B.x add 2 div N-A.y N-B.y add 2 div){P}
    % Q = ((A + C)/2 + B)/2
    (!N-A.x N-C.x add 2 div N-A.y N-C.y add 2 div N-B.y add 2 div exch N-B.x add 2 div exch){Q}
    % R = (A + D + 3(B + C))/8
    (!N-A.x N-D.x add N-B.x N-C.x add 3 mul add 8 div N-A.y N-D.y add N-B.y N-C.y add 3 mul add 8 div){R}
\def\path
{
    \psbezier(.5,0)(.4,1.6)(1.5,1.1)(1.5,2.5)
    \psbezier[liftpen=1](!N-A.x N-A.y)(!N-P.x N-P.y)(!N-Q.x N-Q.y)(!N-R.x N-R.y)
}%
\pscustom
{
    \psset{showpoints}
    \path   
    \reversepath
    \scale{-1 1}    
    \path
    \closepath
}
\end{pspicture}
\end{document}

Bildbeschreibung hier eingeben

Warnung!

(<nodename>)und (!\pstGetNodeCenter{<nodename>} <nodename>.x <nodename>.y)kann nicht mit skaliert werden \scale{}. Deshalb verwende ich (!N-<nodename>.x N-<nodename>.y)hier.

Antwort2

Im Inneren \pscustomnur dieErste \psbezierhat vier Punkte, für alle anderen ist der aktuelle Punkt auch der erste Bézierpunkt:

\documentclass[border=5mm]{standalone}
\usepackage{pstricks}
\begin{document}

\begin{pspicture}(-2,0)(2,2.5)
\pscustom{
         \psbezier[showpoints](1.5,2.5)(1.5,1.1)(.4,1.6)(.5,0)% 4 points
         \psline(-0.5,0)%% is also the first bezier point for the next \psbezier
         \psbezier[showpoints](-.4,1.6)(-1.5,1.1)(-1.5,2.5)% three
         \psline(-.5,2.5)
         \psbezier[showpoints](-.6,1.5)(0.6,1.5)(.5,2.5)% three
         \closepath
}
\end{pspicture}
\end{document}

Bildbeschreibung hier eingeben

Wenn Sie 4 Punkte verwenden, ist das \pslineaber nicht erforderlicheins liftpenMöglichkeit:

\documentclass[border=5mm]{standalone}
\usepackage{pstricks}
\begin{document}

\begin{pspicture}(-2,0)(2,2.5)
\pscustom{
         \psbezier[showpoints](1.5,2.5)(1.5,1.1)(.4,1.6)(.5,0)
         \psbezier[showpoints](-0.5,0)(-.4,1.6)(-1.5,1.1)(-1.5,2.5)
         \psbezier[showpoints,liftpen=1](-.5,2.5)(-.6,1.5)(0.6,1.5)(.5,2.5)
         \closepath
}
\end{pspicture}
\end{document}

verwandte Informationen