[RISOLTO] TIKZ: allineare testo rispetto linee inclinate

  • Creatore
    Topic
  • #101556
    LuglioM26
    Partecipante
      Up
      0
      Down
      ::


      Salve a tutti,

      premesso che sicuramente il codice è più “programmabile” e qualunque miglioramento è ben accetto, vorrei sapere come poter allineare il testo degli angoli con le relative linee. Per quelli orizzontali e verticali non ho fatto niente di particolare e sembra tutto a posto mentre per quello obliquo non sono riuscito a trovare una soluzione.

      [attachment=1315]gonio.jpg[/attachment]

      Questo è il codice

      `
      \documentclass[a4paper,12pt]{article}

      \usepackage[latin1]{inputenc} %latin1 o utf8
      \usepackage[italian]{babel}
      \usepackage[T1]{fontenc}
      \usepackage{graphicx}
      \usepackage{amsmath,amssymb}
      \usepackage{gensymb}
      \usepackage{tikz}

      \begin{tikzpicture}[scale=0.8]
      \coordinate (A) at ({multiply(8.5,{cos(15)})},{multiply(8.5,{sin(15)})});
      \coordinate (B) at ({multiply(8.5,{cos(30)})},{multiply(8.5,{sin(30)})});
      \coordinate (C) at ({multiply(8.5,{cos(45)})},{multiply(8.5,{sin(45)})});
      \coordinate (D) at ({multiply(8.5,{cos(60)})},{multiply(8.5,{sin(60)})});
      \coordinate (E) at ({multiply(8.5,{cos(75)})},{multiply(8.5,{sin(75)})});
      \coordinate (F) at ({multiply(8.5,{cos(105)})},{multiply(8.5,{sin(105)})});
      \coordinate (G) at ({multiply(8.5,{cos(120)})},{multiply(8.5,{sin(120)})});
      \coordinate (H) at ({multiply(8.5,{cos(135)})},{multiply(8.5,{sin(135)})});
      \coordinate (I) at ({multiply(8.5,{cos(150)})},{multiply(8.5,{sin(150)})});
      \coordinate (J) at ({multiply(8.5,{cos(165)})},{multiply(8.5,{sin(165)})});
      \coordinate (K) at ({multiply(8.5,{cos(195)})},{multiply(8.5,{sin(195)})});
      \coordinate (L) at ({multiply(8.5,{cos(210)})},{multiply(8.5,{sin(210)})});
      \coordinate (M) at ({multiply(8.5,{cos(225)})},{multiply(8.5,{sin(225)})});
      \coordinate (N) at ({multiply(8.5,{cos(240)})},{multiply(8.5,{sin(240)})});
      \coordinate (O) at ({multiply(8.5,{cos(255)})},{multiply(8.5,{sin(255)})});
      \coordinate (P) at ({multiply(8.5,{cos(285)})},{multiply(8.5,{sin(285)})});
      \coordinate (Q) at ({multiply(8.5,{cos(300)})},{multiply(8.5,{sin(300)})});
      \coordinate (R) at ({multiply(8.5,{cos(315)})},{multiply(8.5,{sin(315)})});
      \coordinate (S) at ({multiply(8.5,{cos(330)})},{multiply(8.5,{sin(330)})});
      \coordinate (T) at ({multiply(8.5,{cos(345)})},{multiply(8.5,{sin(345)})});
      \draw (-8.5,0) node [anchor=east] {$180\degree=\pi$} — (8.5,0) node [anchor=west] {$0\degree=2\pi$};
      \draw [loosely dashed] (0,0) — (A) node [align=center,anchor=west,rotate=15] {$15\degree=\dfrac{\pi}{12}$};
      \draw (0,0) — (B) node [anchor=west,rotate=30] {$30\degree=\dfrac{\pi}{6}$};
      \draw [loosely dashed] (0,0) — (C) node [anchor=west,rotate=45] {$45\degree=\dfrac{\pi}{4}$};
      \draw (0,0) — (D) node [anchor=west,rotate=60] {$60\degree=\dfrac{\pi}{3}$};
      \draw [loosely dashed] (0,0) — (E) node [anchor=west,rotate=75] {$75\degree=\dfrac{5}{12}\,\pi$};
      \draw (0,-8.5) node [below] {$270\degree=\dfrac{2}{3}\,\pi$} — (0,8.5) node [above] {$90\degree=\dfrac{\pi}{2}$};
      \draw [loosely dashed] (0,0) — (F) node [anchor=east,rotate=285] {$105\degree=\dfrac{7}{12}\,\pi$};
      \draw (0,0) — (G) node [anchor=east,rotate=300] {$120\degree=\dfrac{2}{3}\,\pi$};
      \draw [loosely dashed] (0,0) — (H) node [anchor=east,rotate=315] {$135\degree=\dfrac{3}{4}\,\pi$};
      \draw (0,0) — (I) node [anchor=east,rotate=330] {$150\degree=\dfrac{5}{6}\,\pi$};
      \draw [loosely dashed] (0,0) — (J) node [anchor=east,rotate=345] {$165\degree=\dfrac{11}{12}\,\pi$};
      \draw [loosely dashed] (0,0) — (K) node [anchor=east,rotate=15] {$195\degree=\dfrac{13}{12}\,\pi$};
      \draw (0,0) — (L) node [anchor=east,rotate=30] {$210\degree=\dfrac{7}{6}\,\pi$};
      \draw [loosely dashed] (0,0) — (M) node [anchor=east,rotate=45] {$225\degree=\dfrac{5}{4}\,\pi$};
      \draw (0,0) — (N) node [anchor=east,rotate=60] {$240\degree=\dfrac{4}{3}\,\pi$};
      \draw [loosely dashed] (0,0) — (O) node [anchor=east,rotate=75] {$255\degree=\dfrac{17}{12}\,\pi$};
      \draw [loosely dashed] (0,0) — (P) node [anchor=west,rotate=285] {$285\degree=\dfrac{19}{12}\,\pi$};
      \draw (0,0) — (Q) node [anchor=west,rotate=300] {$300\degree=\dfrac{5}{3}\,\pi$};
      \draw [loosely dashed] (0,0) — (R) node [anchor=west,rotate=315] {$315\degree=\dfrac{7}{4}\,\pi$};
      \draw (0,0) — (S) node [anchor=west,rotate=330] {$330\degree=\dfrac{11}{6}\,\pi$};
      \draw [loosely dashed] (0,0) — (T) node [anchor=west,rotate=345] {$345\degree=\dfrac{23}{12}\,\pi$};
      \draw (0,0) circle [radius=8cm];
      \filldraw (4,0) circle [radius=2pt];
      \filldraw (0,4) circle [radius=2pt];
      \filldraw (-4,0) circle [radius=2pt];
      \filldraw (0,-4) circle [radius=2pt];
      \coordinate (A1) at ({multiply(8,{cos(15)})},{multiply(8,{sin(15)})});
      \coordinate (B1) at ({multiply(8,{cos(30)})},{multiply(8,{sin(30)})});
      \coordinate (C1) at ({multiply(8,{cos(45)})},{multiply(8,{sin(45)})});
      \coordinate (D1) at ({multiply(8,{cos(60)})},{multiply(8,{sin(60)})});
      \coordinate (E1) at ({multiply(8,{cos(75)})},{multiply(8,{sin(75)})});
      \coordinate (F1) at ({multiply(8,{cos(105)})},{multiply(8,{sin(105)})});
      \coordinate (G1) at ({multiply(8,{cos(120)})},{multiply(8,{sin(120)})});
      \coordinate (H1) at ({multiply(8,{cos(135)})},{multiply(8,{sin(135)})});
      \coordinate (I1) at ({multiply(8,{cos(150)})},{multiply(8,{sin(150)})});
      \coordinate (J1) at ({multiply(8,{cos(165)})},{multiply(8,{sin(165)})});
      \coordinate (K1) at ({multiply(8,{cos(195)})},{multiply(8,{sin(195)})});
      \coordinate (L1) at ({multiply(8,{cos(210)})},{multiply(8,{sin(210)})});
      \coordinate (M1) at ({multiply(8,{cos(225)})},{multiply(8,{sin(225)})});
      \coordinate (N1) at ({multiply(8,{cos(240)})},{multiply(8,{sin(240)})});
      \coordinate (O1) at ({multiply(8,{cos(255)})},{multiply(8,{sin(255)})});
      \coordinate (P1) at ({multiply(8,{cos(285)})},{multiply(8,{sin(285)})});
      \coordinate (Q1) at ({multiply(8,{cos(300)})},{multiply(8,{sin(300)})});
      \coordinate (R1) at ({multiply(8,{cos(315)})},{multiply(8,{sin(315)})});
      \coordinate (S1) at ({multiply(8,{cos(330)})},{multiply(8,{sin(330)})});
      \coordinate (T1) at ({multiply(8,{cos(345)})},{multiply(8,{sin(345)})});
      \draw [gray] (K1) rectangle (A1);
      \draw [gray] (L1) rectangle (B1);
      \draw [gray] (M1) rectangle (C1);
      \draw [gray] (N1) rectangle (D1);
      \draw [gray] (O1) rectangle (E1);
      \end{tikzpicture}
      `

      Saluti

      Stefano

      Attachments:
      You must be logged in to view attached files.
    Visualizzazione 2 filoni di risposte
    • Autore
      Risposte
      • #101557
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::


          Ciao.
          Forse usare la proprietà pin dei nodi può aiutare.
          Se avrò un po’ di tempo proverò a darti una soluzione.
          Da quello che ho capito vorresti che il testo di etichetta sia sempre orizzontale, giusto?
          Ottimo grafico.
          R.

        • #101558
          LuglioM26
          Partecipante
            Up
            0
            Down
            ::


            Ciao robitex,

            son contento che vada bene, grazie! Non sono assolutamente un esperto di tikz!

            No, il testo va bene così come lo vedi. Praticamente vorrei che, se prendiamo ad esempio come riferimento il simbolo =, questo sia allineato/centrato rispetto le linee mentre, ora come ora, sembra che le linee siano sullo stesso livello della parte alta del testo (angolo scritto in gradi).

            Non so se mi sono spiegato bene. Vorrei che le linee siano in corrispondenza della metà del lato del “box virtuale” contenente il testo, per ogni inclinazione ovviamente.

            [ T ]
            [ T ]—– (scusate il pessimo esempio)
            [ T ]

            Saluti

            Stefano

          • #101559
            LuglioM26
            Partecipante
              Up
              0
              Down
              ::


              Ciao a tutti.

              Forse ho risolto. Basta inserire “anchor=mid west/east”.

              Saluti

              Stefano

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

          Go to top