Migliormenti diagramma di hasse con tikzpicture

  • Creatore
    Topic
  • #81846
    Up
    0
    Down
    ::


    ho creato il seguente diagramma di Hasse, come diagramma di partenza.

    `\begin{center}
    % disegnare punti
    \begin{tikzpicture}[scale=.75]
    \draw[fill] (-1, 1) circle (.08cm) node

    {$g_1$};
    \draw[fill] (-3, 0) circle (.08cm) node

    {$g_2$};
    \draw[fill] (-1, -1) circle (.08cm) node

    {$g_3$};
    \draw[fill] (1, 0) circle (.08cm) node

    {$g_4$};
    % disegnare legami
    \draw (-1,1) — (-3,0);
    \draw (-1,1) — (1,0);
    \draw (-3,0) — (-1,-1);
    \draw (-1,-1) — (1,0);
    \end{tikzpicture}
    \end{center}`

    ma ho i seguenti dubbi, dovuti all’inesperienza con questo pacchetto, appena iniziato ad usare:
    – è possibile separare il nome dei punti leggermente dal punto relativo?
    – è possibile separare le linee dai punti? a me serve che i punti siano collegati, ma non che le linee tocchino le estremità

    grazie a tutti per gli aiuti e la pazienza! :mrgreen:

Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #81847
      Up
      0
      Down
      ::

      Dr Spencer Reid” post=81102ho creato il seguente diagramma di Hasse, come diagramma di partenza.

      `\begin{center}
      % disegnare punti
      \begin{tikzpicture}[scale=.75]
      \draw[fill] (-1, 1) circle (.08cm) node

      {$g_1$};
      \draw[fill] (-3, 0) circle (.08cm) node

      {$g_2$};
      \draw[fill] (-1, -1) circle (.08cm) node

      {$g_3$};
      \draw[fill] (1, 0) circle (.08cm) node

      {$g_4$};
      % disegnare legami
      \draw (-1,1) — (-3,0);
      \draw (-1,1) — (1,0);
      \draw (-3,0) — (-1,-1);
      \draw (-1,-1) — (1,0);
      \end{tikzpicture}
      \end{center}`

      ma ho i seguenti dubbi, dovuti all’inesperienza con questo pacchetto, appena iniziato ad usare:
      – è possibile separare il nome dei punti leggermente dal punto relativo?
      – è possibile separare le linee dai punti? a me serve che i punti siano collegati, ma non che le linee tocchino le estremità

      grazie a tutti per gli aiuti e la pazienza! :mrgreen:

      Vedo parecchie soluzioni per migliorare il tuo codice: ne riporto qualcuna.

      `
      \documentclass[a4paper,11pt]{article}
      \usepackage[width=15cm]{geometry}
      \usepackage{tikz}
      \usetikzlibrary{positioning}
      \usepackage{tkzexample}
      \colorlet{codebackground}{blue!20}%
      \colorlet{graphicbackground}{yellow!20}%

      \begin{document}
      Soluzione 1: dispendiosa

      \begin{tkzexample}[width=4cm]
      % disegnare punti
      \begin{tikzpicture}[scale=.75]
      \draw[fill] (-1, 1) circle (.08cm) node[above] {$g_1$};
      \draw[fill] (-3, 0) circle (.08cm) node

      {$g_2$};
      \draw[fill] (-1, -1) circle (.08cm) node[below] {$g_3$};
      \draw[fill] (1, 0) circle (.08cm) node

      {$g_4$};
      % disegnare legami
      \draw (-1,1) — (-3,0);
      \draw (-1,1) — (1,0);
      \draw (-3,0) — (-1,-1);
      \draw (-1,-1) — (1,0);
      \end{tikzpicture}
      \end{tkzexample}
      \medskip

      Soluzione 2: leggermente migliore
      \begin{tkzexample}[width=3cm]
      % disegnare punti
      \begin{tikzpicture}[scale=.75]
      \tikzset{marker/.style={inner sep=0pt}}
      \draw[fill] (-1, 1) node[marker] (1){} circle (.08cm) node[above] {$g_1$};
      \draw[fill] (-3, 0) node[marker] (2){}circle (.08cm) node

      {$g_2$};
      \draw[fill] (-1, -1) node[marker] (3){} circle (.08cm) node[below] {$g_3$};
      \draw[fill] (1, 0) node[marker] (4){} circle (.08cm) node

      {$g_4$};
      % disegnare legami
      \draw (1.center)–(2.center)–(3.center)–(4.center)–cycle;
      \end{tikzpicture}
      \end{tkzexample}
      \pagebreak

      Soluzione 3: mi piace
      \begin{tkzexample}[width=3cm]
      % disegnare punti
      \begin{tikzpicture}[scale=.75]
      \tikzset{marker/.style={circle,fill=black,scale=0.5}}
      \node[marker, label=above:$g_1$] (1) at (-1, 1) {};
      \node[marker, label=left:$g_2$] (2) at (-3, 0) {};
      \node[marker, label=below:$g_3$] (3) at (-1, -1) {};
      \node[marker, label=right:$g_4$] (4) at (1,0) {};
      % disegnare legami
      \draw (1.center)–(2.center)–(3.center)–(4.center)–cycle;
      \end{tikzpicture}
      \end{tkzexample}
      \medskip

      Soluzione 4: migliore
      \begin{tkzexample}[width=3cm]
      % disegnare punti
      \begin{tikzpicture}[scale=.75]
      \tikzset{marker/.style={circle,fill=black,scale=0.5}}
      \foreach \x/\pos/\lab
      in {1/{(-1,1)}/above, 2/{(-3, 0)}/left, 3/{(-1,-1)}/below, 4/{(1,0)}/right}
      \node[marker, label=\lab:$g_\x$] (\x) at \pos {};
      % disegnare legami
      \draw (1.center)–(2.center)–(3.center)–(4.center)–cycle;
      \end{tikzpicture}
      \end{tkzexample}
      \pagebreak

      Soluzione 5: i segmenti non raggiungono i punti
      \begin{tkzexample}[width=3cm]
      % disegnare punti
      \begin{tikzpicture}[scale=.75]
      \tikzset{marker/.style={circle,fill=black,scale=0.5, outer sep=5pt}}
      \foreach \x/\pos/\lab
      in {1/{(-1,1)}/above, 2/{(-3, 0)}/left, 3/{(-1,-1)}/below, 4/{(1,0)}/right}
      \node[marker, label=\lab:$g_\x$] (\x) at \pos {};
      % disegnare legami
      \draw (1)–(2)–(3)–(4)–(1);
      \end{tikzpicture}
      \end{tkzexample}
      \pagebreak

      Soluzione 6: solo per usare un po' le chiavi
      \begin{tkzexample}[width=3cm]
      % disegnare punti
      \begin{tikzpicture}[scale=.75]
      % setting labels in math mode

      \tikzset{math mode labels/.style={%
      execute at begin node=$,%
      execute at end node=$,%
      }
      }
      \pgfkeys{/tikz/.cd,%
      use math mode labels/.is choice,%
      use math mode labels/true/.style={math mode labels},%
      use math mode labels/false/.style={},%
      }%

      \tikzset{set math mode labels/.style={%
      use math mode labels=#1,%
      },%
      set math mode labels/.default=false,%
      }

      \tikzset{marker/.style={circle,fill=black,scale=0.5, outer sep=5pt}}

      \foreach \x/\pos/\lab
      in {1/{(-1,1)}/above, 2/{(-3, 0)}/left, 3/{(-1,-1)}/below}{
      \node[marker] (\x) at \pos {};
      \node[set math mode labels=true, \lab=0.1cm of \x] {g_\x};
      }
      \node[marker] (4) at (1,0) {};
      \node

      {g$_4$};
      % disegnare legami
      \draw (1)–(2)–(3)–(4)–(1);
      \end{tikzpicture}
      \end{tkzexample}

      \end{document}
      `

      Ciao
      Claudio

    • #81848
      Up
      0
      Down
      ::


      grazie per l’aiuto!

      direi che la soluzione 5 è quella che si adatta meglio al mio caso!
      ovviamente senza lo sfondo rosa 😛

    • #81849
      Up
      0
      Down
      ::

      Dr Spencer Reid” post=81107grazie per l’aiuto!

      direi che la soluzione 5 è quella che si adatta meglio al mio caso!
      ovviamente senza lo sfondo rosa 😛

      Ma non devi includere nell’ambiente [tt]tkzexample[/tt] le figure: io l’ho usato solo perché compilando il mio documento avresti avuto delle pagine di questo tipo

      [attachment=573]prova_guit1.jpg[/attachment]

      in cui si vede figura e codice contemporaneamente. Da utente, l’utilità di vedere il codice di una figura in un documento che parla probabilmente di un argomento diverso mi sfugge.

      Ciao
      Claudio

      Attachments:
      You must be logged in to view attached files.
Visualizzazione 2 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top