Tikz: inserire colore problema

  • Creatore
    Topic
  • #69849
    Up
    0
    Down
    ::


    Buona domenica a tutti!

    `
    \begin{tikzpicture}
    \begin{scope}

    %m=0, n=1
    \draw[line width=1.2pt](-1,1) circle(1cm) node[below=1.2cm]{$m=0, n=1$};

    %m=0, n=2
    \draw[fill=gray,line width=1.2pt](2,1) circle(1cm) node[below=1.2cm]{$m=0, n=2$};
    \draw[fill=white](2,1) circle(.4cm);

    %m=0, n=3
    \draw[fill=gray,line width=1.2pt](5,1) circle(1cm) node[below=1.2cm]{$m=0, n=3$};
    \draw[fill=white](5,1) circle(.6cm);
    \draw[fill=gray](5,1) circle(.3cm);

    %m=1, n=1
    \draw[line width=1.2pt](-1,-3.5) arc(270:90:1cm) node[below=2.2cm]{$m=1, n=1$};
    \clip(-1,-3.5) arc(-90:90:1cm);
    \fill[gray](0cm,1cm) rectangle(-3cm,-3.5cm);
    \end{scope}

    %m=1, n=2
    \begin{scope}
    \draw[line width=1.2pt](2,-3.5) arc(270:90:1cm) node[below=2.2cm]{$m=1, n=2$};
    \clip(2,-3.5) arc(-90:90:1cm);
    \fill[gray](0cm,1cm) rectangle(4cm,-4.5cm);
    \end{scope}

    \begin{scope}
    \draw[line width=1.2pt,fill=white](2,-3) arc(-90:90:0.5cm);
    \clip(2,-3) arc(270:90:0.5cm);
    \filldraw[gray](0cm,1cm) rectangle(4cm,-4.5cm);
    \end{scope}

    %m=1, n=3
    \begin{scope}
    \draw[line width=1.2pt](5,-3.5) arc(270:90:1cm) node[below=2.2cm]{$m=1, n=3$};
    \clip(5,-3.5) arc(-90:90:1cm);
    \fill[gray](0cm,1cm) rectangle(7cm,-4.5cm);
    \end{scope}

    \begin{scope}
    \draw[line width=1.2pt,fill=white](5,-3.1) arc(-90:90:.6cm);
    \clip(5,-3.1) arc(270:90:.6cm);
    \fill[gray](0cm,1cm) rectangle(7cm,-4.5cm);
    \end{scope}

    \begin{scope}
    \draw[line width=1.2pt,fill=white](5,-2.8) arc(270:90:.3cm);
    \clip(5,-2.8) arc(-90:90:.3cm);
    \fill[gray](0cm,1cm) rectangle(7cm,-4.5cm);
    \end{scope}
    %\draw[fill=white](2,-3.5) arc(-90:90:0.5cm);

    %m=2, n=1
    \begin{scope}
    \path[draw=none](-1,-7) arc(-90:90:1cm) node[below=2.2cm]{$m=1, n=3$};
    \clip(-1,-7) arc(270:90:1cm);
    \fill[gray](0cm,1cm) rectangle(-3cm,-7cm);
    \end{scope}

    \begin{scope}
    \draw[line width=1.2pt,fill=white](-1,-5) arc(90:180:1cm);
    \clip(-1,-7) arc(0:90:1cm);
    \fill[gray](0cm,1cm) rectangle(-3cm,-7cm);
    \end{scope}

    \end{tikzpicture}
    `

    genero delle circonferenze che sono colorate solo in parte (ad esempio, metà circonferenza colorata e l’altra metà no, e così via). Nell’ultimo blocco di scope, voglio che un quarto di circonferenza sia colorato, un quarto no, un quarto sì e un quarto no…il problema è che non riesco a dirgli di fare questo e non trovo nemmeno l’errore! Sapete aiutarmi?? Grazie…

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


      In sostanza, vorrei capire qual è la giusta sequenza per permettermi di colorare un quarto di cerchio sì e uno no…

    • #69851
      Liverpool
      Partecipante
        Up
        0
        Down
        ::


        Così?
        `% m=2, n=1
        \draw[line width=1.2pt] (-2,-6) arc(180:90:1) node[below=2.2cm] {$m=2, n=1$};
        \fill[gray] (-1,-5) arc(90:0:1) — (-1,-6) — (-1,-5);
        \draw[line width=1.2pt] (-1,-7) arc(270:360:1);
        \fill[gray] (-1,-7) arc(270:180:1) — (-1,-6) — (-1,-7);`Se congiungi gli archi al centro con dei raggi, non c’è bisogno di usare né scope, né clip (anche negli altri casi). Se ho capito bene il tuo problema, non funzionava perché clip chiude il percorso che definisci con un segmento che congiunge i due estremi (in questo caso una corda), perciò il riempimento era un segmento circolare e non un settore, come ti saresti aspettato. Nel codice precedente — (-1,-5) e — (-1,-7) sono superflui perché il settore si chiude automaticamente.
        Ovviamente, invece di tracciare due archi e due settori, puoi tracciare direttamente due archi e una farfalla grigia così:
        `% m=2, n=1
        \draw[line width=1.2pt] (-2,-6) arc(180:90:1) node[below=2.2cm] {$m=2, n=1$}
        (0,-6) arc(0:-90:1);
        \fill[gray] (-2,-6) arc(180:270:1) — (-1,-5) arc(90:0:1);`Se devi riempire anche i settori bianchi, ti conviene disegnare un cerchio bianco, una farfalla grigia e i due archi neri a parte.

        Alla fine il tuo codice appare così (nota che ho rimosso le circonferenze sottili nella prima riga, pensando di interpretare le tue necessità):
        `\begin{tikzpicture}
        % m=0, n=1
        \draw[line width=1.2pt] (-1,1) circle(1) node[below=1.2cm] {$m=0, n=1$};

        % m=0, n=2
        \draw[line width=1.2pt, fill=gray] (2,1) circle(1) node[below=1.2cm] {$m=0, n=2$};
        \fill[white] (2,1) circle(.4);

        % m=0, n=3
        \draw[line width=1.2pt, fill=gray] (5,1) circle(1) node[below=1.2cm] {$m=0, n=3$};
        \fill[white] (5,1) circle(.6);
        \fill[gray] (5,1) circle(.3);

        % m=1, n=1
        \draw[line width=1.2pt] (-1,-3.5) arc(270:90:1) node[below=2.2cm] {$m=1, n=1$};
        \fill[gray] (-1,-3.5) arc(-90:90:1);

        % m=1, n=2
        \draw[line width=1.2pt] (2,-3.5) arc(270:90:1) node[below=2.2cm] {$m=1, n=1$};
        \fill[gray] (2,-3.5) arc(-90:90:1);

        \draw[line width=1.2pt, fill=white] (2,-3) arc(-90:90:0.5);
        \fill[gray] (2,-3) arc(270:90:0.5);

        % m=1, n=3
        \draw[line width=1.2pt] (5,-3.5) arc(270:90:1) node[below=2.2cm] {$m=1, n=3$};
        \fill[gray] (5,-3.5) arc(-90:90:1);

        \draw[line width=1.2pt, fill=white] (5,-3.1) arc(-90:90:.6);
        \fill[gray] (5,-3.1) arc(270:90:.6);

        \draw[line width=1.2pt, fill=white] (5,-2.8) arc(270:90:.3);
        \fill[gray] (5,-2.8) arc(-90:90:.3);

        % m=2, n=1
        \draw[line width=1.2pt] (-2,-6) arc(180:90:1) node[below=2.2cm] {$m=2, n=1$}
        (0,-6) arc(0:-90:1);
        \fill[gray] (-2,-6) arc(180:270:1) — (-1,-5) arc(90:0:1);
        \end{tikzpicture}`
        Ciao

      • #69852
        Up
        0
        Down
        ::


        Alla fine ieri sera provando e riprovando sono riuscito a fare qualcosa, però non riuscivo a togliere il contorno dove non serviva…Inoltre, il tuo codice è più stringato di quello che ho fatto io, e così va molto meglio!! Quindi grazie mille per l’aiuto 😉

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

    Go to top