Cobordismo con pstricks

Cobordismo con pstricks

Estoy intentando deshacerme de la línea media. Cualquier cambio que haga parece que lo empeoro. Le agradecería que alguien pudiera mostrarme cómo dibujar este cobordismo correctamente.

\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}

mazorca

Respuesta1

método normal

\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}

ingrese la descripción de la imagen aquí

método anormal

Las propiedades simétricas se tienen en cuenta con \reversepath, \scale, etc. Desafortunadamente, \nodexnno (!N-<nodename>.x N-<nodename>.y)se pueden usar juntas aquí, por lo que el código se vuelve demasiado complicado.

\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}

ingrese la descripción de la imagen aquí

¡Advertencia!

(<nodename>)y (!\pstGetNodeCenter{<nodename>} <nodename>.x <nodename>.y)no puede ser escalado por \scale{}. Por eso lo uso (!N-<nodename>.x N-<nodename>.y)aquí.

Respuesta2

Dentro \pscustomsólo elprimero \psbeziertiene cuatro puntos, para todos los demás el punto actual también es el primer punto Bézier:

\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}

ingrese la descripción de la imagen aquí

Si usa 4 puntos entonces no hay necesidad de \pslineperouno liftpenopción:

\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}

información relacionada