Linee di punti sfumate in Tikz

  • Creatore
    Topic
  • #104487
    Up
    0
    Down
    ::


    Buonasera amici,
    la domanda vi sembrerà sciocca ma vi garantisco che mi sono rotto la testa per un po’ prima di decidermi a disturbarvi 🙂
    Sto cercando di trasportare in LaTeX una rivista che curo in Indesign, e prima di mettermi sull’impostazione delle pagine sto cercando di capire se riesco ad riprodurre gli elementi grafici più caratterizzanti. Tra questi, quello predominante è costituito da linee di punti progressivamente sfumati dal nero al bianco.

    Ho provato allora a partire dall’abc:

    `\begin{tikzpicture}
    \draw [loosely dotted, line width=3pt, line join=round] (-40,0) — ++(20,0);
    \end{tikzpicture}`

    per poi cercare di far venire i puntini tondi e non quadrati:

    `\begin{tikzpicture}
    \draw [line width=3pt, line cap=round, dash pattern=on 0pt off 2\pgflinewidth] (-40,0) — ++(20,0);
    \end{tikzpicture}`

    Ma con le sfumature è stato un fiasco dopo l’altro, soprattutto perché mi trovavo a leggere codici dall’esoterismo per me proibitivo (conditi di \makeatletter e \makeatother). Immagino che debbano esistere codici meno barocchi e più lineari per ottenere una cosa tutto sommato non elaboratissima. Vorrei poter usare questi elementi grafici anche come sottolineature e “sopralineature”.

    Grazie 🙄

Visualizzazione 8 filoni di risposte
  • Autore
    Risposte
    • #104488
      Up
      0
      Down
      ::

      Yokanaan” post=104535Buonasera amici,
      la domanda vi sembrerà sciocca ma vi garantisco che mi sono rotto la testa per un po’ prima di decidermi a disturbarvi 🙂
      Sto cercando di trasportare in LaTeX una rivista che curo in Indesign, e prima di mettermi sull’impostazione delle pagine sto cercando di capire se riesco ad riprodurre gli elementi grafici più caratterizzanti. Tra questi, quello predominante è costituito da linee di punti progressivamente sfumati dal nero al bianco.

      Ho provato allora a partire dall’abc:

      `\begin{tikzpicture}
      \draw [loosely dotted, line width=3pt, line join=round] (-40,0) — ++(20,0);
      \end{tikzpicture}`

      per poi cercare di far venire i puntini tondi e non quadrati:

      `\begin{tikzpicture}
      \draw [line width=3pt, line cap=round, dash pattern=on 0pt off 2\pgflinewidth] (-40,0) — ++(20,0);
      \end{tikzpicture}`

      Ma con le sfumature è stato un fiasco dopo l’altro, soprattutto perché mi trovavo a leggere codici dall’esoterismo per me proibitivo (conditi di \makeatletter e \makeatother). Immagino che debbano esistere codici meno barocchi e più lineari per ottenere una cosa tutto sommato non elaboratissima. Vorrei poter usare questi elementi grafici anche come sottolineature e “sopralineature”.

      Grazie 🙄

      Il problema non è affatto banale. Puoi risolvere così: `
      \documentclass[tikz,border=10pt]{standalone}
      \usetikzlibrary{decorations.markings}

      % based on:
      % http://tex.stackexchange.com/a/101266/13304
      % and
      % http://tex.stackexchange.com/a/141551/13304

      % argomento #1: raggio cerchio
      % argomento #2: distanza fra i cerchi
      \tikzset{dotted pattern/.style args={#1 and #2}{
      postaction={
      decorate,
      decoration={
      markings,
      mark=between positions 0 and \pgfdecoratedpathlength-8pt step #2 with {
      \pgfmathsetmacro\myval{multiply(divide(
      \pgfkeysvalueof{/pgf/decoration/mark info/distance from start}, \pgfdecoratedpathlength),100)};
      \pgfsetfillcolor{gray!\myval!black};
      \fill[radius=#1] (0,0) circle;}
      }}}}

      \begin{document}
      \begin{tikzpicture}
      \path [dotted pattern=1pt and 4mm] (-40,0) — ++(20,0);
      \end{tikzpicture}
      \end{document}
      ` Sostanzialmente si sfruttano le proprietà della libreria decorations.markings di posizionare ripetutamente un qualsiasi oggetto si desideri all’interno di un segmento e contare la distanza di ogni oggetto dall’inizio. COn questa informazione, rapportata a 100, si può definire il colore del cerchio da posizionare che sarà sfumato appunto in proporzione.

      Ciao
      Claudio

    • #104489
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::


        Ciao.
        Una semplice soluzione consiste nell’utilizzare un ciclo \foreach.
        Il codice è molto semplice ma occorre essere abili nel regolare gli intervalli e il moltiplicatore della coordinata perché essa è usata come parametro sia per definire un colore tra il bianco e il nero sia la distanza tra i cerchi.
        Il terzo parametro, ovvero il numero dei cerchi, dovrà essere regolato scegliendo l’intervallo di \x:

        `\documentclass[tikz]{standalone}

        \begin{document}
        \begin{tikzpicture}

        \foreach \x in {10,20,…,80}
        \fill[white!\x!black] (\x*.525,0) circle (1);

        \end{tikzpicture}
        \end{document}`

        Alla prossima.
        R.

      • #104490
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::


          Leggendo il manuale di PGF (comando da terminale $ texdoc pgf), ho trovato una soluzione migliore svincolando i parametri con , tramite le opzioni evaluate/as/using di \foreach:
          `\documentclass[tikz]{standalone}

          \begin{document}
          \begin{tikzpicture}

          \foreach \x [evaluate=\x as \partcol using 100-\x*8] in {0,…,9}
          \fill[white!\partcol!black] (\x*2.5,0) circle (1);

          \end{tikzpicture}
          \end{document}`

          Possiamo far calcolare a TikZ il grado di bianco/nero con una formula (ho usato una relazione lineare 100-x*8 ), introducendo un nuovo simbolo \partcol (parte colore).
          In questo modo l’intervallo si riferirà solamente al numero di palline richieste, mentre regolando la formula è possibile impostare il grigio di partenza e degradarlo con uno step di bianco prefissato, tipo con la formula 25+\x*6
          Questa funzionalità non la conoscevo, forse è stata introdotta in una delle ultime versioni.

          Con la formula:`(4*100/81)*(9*\x -\x^2)` ho invece un effetto parabolico dal nero al bianco e di nuovo al nero … 😉

          Bye.
          R.

        • #104491
          Up
          0
          Down
          ::

          robitex” post=104544Leggendo il manuale di PGF (comando da terminale $ texdoc pgf), ho trovato una soluzione migliore svincolando i parametri con , tramite le opzioni evaluate/as/using di \foreach:
          `\documentclass[tikz]{standalone}

          \begin{document}
          \begin{tikzpicture}

          \foreach \x [evaluate=\x as \partcol using 100-\x*8] in {0,…,9}
          \fill[white!\partcol!black] (\x*2.5,0) circle (1);

          \end{tikzpicture}
          \end{document}`

          Possiamo far calcolare a TikZ il grado di bianco/nero con una formula (ho usato una relazione lineare 100-x*8 ), introducendo un nuovo simbolo \partcol (parte colore).
          In questo modo l’intervallo si riferirà solamente al numero di palline richieste, mentre regolando la formula è possibile impostare il grigio di partenza e degradarlo con uno step di bianco prefissato, tipo con la formula 25+\x*6
          Questa funzionalità non la conoscevo, forse è stata introdotta in una delle ultime versioni.

          Con la formula:`(4*100/81)*(9*\x -\x^2)` ho invece un effetto parabolico dal nero al bianco e di nuovo al nero … 😉

          Bye.
          R.

          In realtà la funzionalità [tt]evalulate[/tt] è presente già da prima della versioni 3.x di TikZ 😉 Questo è appunto uno di quei casi dove torna estremamente comoda: ottima idea!

          L’approccio del ciclo funziona molto bene in questo caso perché occorre disporre i cerchi su una retta. La soluzione che proponevo invece è più generale in quanto si possono usare anche altri tipi di segmenti. Lo svantaggio della mia soluzione è che modifiche all’aspetto dei cerchi sono leggermente più complicate da attuare.

          Ciao
          Claudio

        • #104492
          Up
          0
          Down
          ::


          Grazie a entrambi, sono impressionato dalla prontezza e dalla varietà dei suggerimenti.
          Vi chiederei ancora di indirizzarmi sui pacchetti giusti per l’effetto finale che vorrei ottenere.
          Quello che vedete nell’ultima immagine è uno degli elementi più complessi della rivista: scorre dall’alto verso il basso a ogni rubrica e anche in Indesign non è stato immediatissimo ricavarlo. In ambiente TeX ho appena ottenuto il cerchio con le iniziali (coi comandi \path e \node), ma restano i puntini, la sfumatura, la possibilità di collocarlo a cavallo del margine esterno di pagina e magari quella di farlo scorrere verso il basso automaticamente, di documento in documento…
          Che dite? Impresa troppo ardua?

          Attachments:
          You must be logged in to view attached files.
        • #104493
          robitex
          Amministratore del forum
            Up
            0
            Down
            ::


            Ciao.
            Credo non sia troppo arduo.
            Con calma l’effetto può sfruttare bene le capacità di svolgere calcoli di TeX con TikZ.
            Mi sembra per esempio che la lunghezza del titolo determini quella della serie di pallini sfumati e in TeX esiste un comando per misurare un box di testo.

            Se leggi il manuale o l’Arte di disegnare, http://www.lorenzopantieri.net/LaTeX_files/ArteTikZ.pdf , puoi ottenere effetti di sfumatura in tutte le varianti.
            R.

          • #104494
            Up
            0
            Down
            ::


            Ok, cercherò.
            Comunque le serie di pallini hanno lunghezza fissa, in quella posizione. Altrove invece mi risulterebbe comodo poterli usare in funzione della lunghezza del testo.
            Grazie 🙂

          • #104495
            Up
            0
            Down
            ::


            Ciao Roberto, volevo dirti che ho cercato di versare la quota ma il CC pareva non esistere (più, almeno). Ho scritto al Guit e ho twittato, ma non ho ricevuto risposta. Tutto ok?

          • #104496
            robitex
            Amministratore del forum
              Up
              0
              Down
              ::

              Yokanaan” post=104726Ciao Roberto, volevo dirti che ho cercato di versare la quota ma il CC pareva non esistere (più, almeno). Ho scritto al Guit e ho twittato, ma non ho ricevuto risposta. Tutto ok?

              Ciao.
              Son molto felice che vuoi diventare un nuovo socio GuIT!
              Per versare la quota 2016 usa PayPal (segui le istruzioni in fondo alla pagina http://www.guitex.org/home/it/diventa-socio/versare-la-quota-associativa-guit).
              Abbiamo ancora problemi dovuti alle Poste sul conto corrente.
              Grazie e benvenuto!
              R.

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

          Go to top