Testo in una figura pstrick

  • Creatore
    Topic
  • #90804
    Jart2276
    Partecipante
      Up
      0
      Down
      ::


      Ho un problema di questo tipo: voglio disegnare con pstrick una freccia rivolta verso l’alto e – passando i parametri x e y di origine e la lunghezza – mi indichi anche il modulo e l’origine.
      Il codice è questo.

      `\documentclass{minimal}

      \usepackage{pstricks-add}
      \usepackage{amsmath}

      \newcommand{\frecciasu}[4]{\psline{->}(#1,#2)(#1,#3)%
      \pscircle[fillstyle=solid,linecolor=black,fillcolor=red](0,0){.5ex}%
      \rput(#1,#3){#4}%
      \rput[t](#1,#2){#1}}

      \pagestyle{empty}

      \begin{document}

      \begin{pspicture*}(-1,-6)(13,6)

      \frecciasu{0}{0}{3}{1000}

      \end{pspicture*}

      \end{document}`

      Ma la posizione del simbolo 0 non mi soddisfa per niente. Come fare per spostarlo leggermente più in basso, tipo togliere 1 alla y di origine?
      Ciao

    Visualizzazione 3 filoni di risposte
    • Autore
      Risposte
      • #90805
        Liverpool
        Partecipante
          Up
          0
          Down
          ::


          Con [tt]uput[/tt] al posto di [tt]rput[/tt]?
          `\uput[-90](#1,#2){#1}`

        • #90806
          Up
          0
          Down
          ::


          Perché non TikZ? Tra parentesi così si evita il problema di definire a mano la bounding box (quella che hai usato nell’esempio è esagerata per disegnare una freccia da [tt](0,0)[/tt] a [tt](0,3)[/tt]).

          Nella mia implementazione puoi sfruttare delle chiavi per rendere più chiaro il lavoro (personalmente trovo PSTricks poco intuitivo con mille mila argomenti ai comandi: le opzioni in TikZ agevolano notevolmente la lettura del codice quando serve andare a riprenderlo): `
          \documentclass[tikz,border=10pt]{standalone}
          \usepackage{tikz}

          \tikzset{origin/.store in=\origin,
          origin={(0,0)},
          direction/.store in=\direction,
          direction=90,
          segment length/.store in=\seglen,
          segment length=3cm,
          module label/.store in=\modplace,
          module label=above,
          origin label/.store in=\orplace,
          origin label=below,
          draw custom arrow/.code={
          \begin{scope}[shift={\origin}]
          \draw[-stealth] (0,0) node[label={\orplace}:\origin]{} –(\direction:\seglen) node[\modplace]{\seglen};
          \end{scope}
          }
          }

          \makeatletter%
          \def\frecciasu{\@ifnextchar[{\@withopt}{\@withoutopt}}%
          \def\@withopt[#1]{\node[#1,draw custom arrow]}%
          \def\@withoutopt{\node[draw custom arrow]}%
          \makeatother%

          \begin{document}

          \tikz\frecciasu{};

          \tikz\frecciasu[origin={(2,1)},direction=45,segment length=2cm,origin label=below left,module label=midway,sloped,above]{};

          \end{document}
          `

          [attachment=852]ScreenShot2013-12-06at5.55.55PM.png[/attachment]

          *Nota (per successivo debug): sembra impossibile che [tt]origin label=below left,module label=midway,sloped,above[/tt] funzioni correttamente e senza parentesi. Probabilmente le opzioni vengono prese tutte ugualmente, ma serve verificare se funziona solo perché non ci sono altre “custom option” dopo.

          Ciao
          Claudio

          Attachments:
          You must be logged in to view attached files.
        • #90807
          Liverpool
          Partecipante
            Up
            0
            Down
            ::

            cfiandra” post=90363*Nota (per successivo debug): sembra impossibile che [tt]origin label=below left,module label=midway,sloped,above[/tt] funzioni correttamente e senza parentesi. Probabilmente le opzioni vengono prese tutte ugualmente, ma serve verificare se funziona solo perché non ci sono altre “custom option” dopo.

            [OT per Claudio]
            L’opzione [tt]shift[/tt] viene ignorata. Prova a vedere dov’è l’origine.

            Ciao
            [/OT]

          • #90808
            Up
            0
            Down
            ::

            Liverpool” post=90370
            [OT per Claudio]
            L’opzione [tt]shift[/tt] viene ignorata. Prova a vedere dov’è l’origine.

            Ciao
            [/OT]

            Vero, viene comunque in [tt](0,0)[/tt]. Devo pensarci un po’ su: in questo codice ci sono troppe cose che non tornano (e a prima vista mi sembrava una cosa semplice… )

            Ciao
            Claudio

        Visualizzazione 3 filoni di risposte
        • Devi essere connesso per rispondere a questo topic.

        Go to top