4

108I have this snippet inside my work to visualise a Mobius strip.

\begin{pspicture}(-4.2,-3.7)(5.1,3)
    \psset{unit=1.5}
    \psset[pst-solides3d]{viewpoint=20 10 10, Decran=40, lightsrc=20 10 35}
    \defFunction{mobius}(u,v)
       {2 u v Cos mul add 2 v mul Cos mul}
       {2 u v Cos mul add 2 v mul Sin mul}
       {u v Sin mul}
    \psSolid[object=surfaceparametree,linewidth=0.1\pslinewidth,
       base=-0.5 0.5 0 pi,fillcolor=white!50,incolor=white!50,
       function=mobius,
       ngrid=3 30, show = 15 108]%
        \psSolid[object=line, linecolor=red, linewidth=0.5\pslinewidth, args=-0.62 0.62 -0.05 -0.62 0.62 1.3]
    \end{pspicture}

enter image description here

I like to change the color and thickness of one vertical grid line (a grid-line in width of the strip) and label it with symbol. I did a rudimentary effort in finding one of them (show = 15 108) and draw a red line over it by

\psSolid[object=line, linecolor=red, linewidth=0.5\pslinewidth, args=-0.62 0.62 -0.05 -0.62 0.62 1.3]

Though the line coincides with the gridline, its thickness won't change at all. I also couldn't put any text (Greek, maths, etc.) or label on this.

I studied entire, pst-solides3d: The Documentation – The Basics. Obliged for any hint.

1 Answer 1

4

The [show = all] identifies all the vertices. I suppose you used the [action = writesolid] option to get the coordinates of two vertices 15 and 108 in the file "mobius-sommets.dat", then you have calculated the coordinates of 2 points on this line?

Here is a way to draw the line. It is not easy!

\documentclass{article}
\usepackage{pst-solides3d}
\begin{document}
\begin{center}
\begin{pspicture}(-5,-5)(5,5)
\psset{unit=1.5,solidmemory}
\psset[pst-solides3d]{viewpoint=20 10 10, Decran=40, lightsrc=20 10 35}
\defFunction{mobius}(u,v)
       {2 u v Cos mul add 2 v mul Cos mul}
       {2 u v Cos mul add 2 v mul Sin mul}
       {u v Sin mul}
\psSolid[object=surfaceparametree,linewidth=0.1\pslinewidth,
       base=-0.5 0.5 0 pi,fillcolor=white!50,incolor=white!50,
       function=mobius,name=Mobius,% action=writesolid,file=mobius,
       ngrid=3 30] %                 , show = 15 108]%
\codejps{Mobius 15 solidgetsommet /point1 defpoint3d
         Mobius 108 solidgetsommet /point2 defpoint3d
         3 setlinewidth}% line width
\psSolid[object=line,linecolor=red,args=point1 point2]%
\pstVerb{% 
%        point1         point2 
    -2.0 0.0 -0.5  -2.0 0.0 0.5 -1 mulv3d addv3d normalize3d /u1 defpoint3d 
    /K 0.5 def
    -2.0 0.0 -0.5 u1 K mulv3d addv3d /AA1 defpoint3d
    /xyA1 {AA1 3dto2d}  def
    -2.0 0.0 0.5 u1 K neg mulv3d addv3d /AA2 defpoint3d
    /xyA2 {AA2 3dto2d}  def}%
\psPoint(-2.0,0.0,-0.5){A1}
\psPoint(-2.0,0.0,0.5){A2}
\uput[dr](A1){\red$A_1$}
\uput[ur](A2){\red$A_2$}
\uput[d](!xyA1){\red$A'_1$}
\psdot(!xyA1)
\uput[u](!xyA2){\red$A'_2$}
\psdot(!xyA2)
\psline[linecolor=red](!xyA2)(A2)
\psline[linecolor=red](!xyA1)(A1)
\end{pspicture}
\end{center}
\end{document}

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .