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.

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.