- Questo topic ha 9 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 13 anni, 8 mesi fa da
Marco87.
-
CreatoreTopic
-
5 Gennaio 2013 alle 17:47 #81877
-
CreatoreTopic
-
AutoreRisposte
-
-
5 Gennaio 2013 alle 17:51 #81878
-
6 Gennaio 2013 alle 8:23 #81879::
Ciao Orlando,quando disegni con [tt]TikZ[/tt] l’ordine con cui dai i comandi conta. Quindi, se prima disegni il rettangolo e lo riempi, e poi disegni l’arco e lo riempi, otterrai proprio il risultato dell’immagine che vuoi riprodurre. Altrimenti puoi usare quanto viene descritto a pagina 663 del manuale di [tt]TikZ.[/tt]
Ciao,
Marco.
-
6 Gennaio 2013 alle 17:59 #81880::
E come faccio a riempire l’arco? cioè io ho provato a fare così:
• disegno parabola esterna e riempio
• disegno parabola interna e riempio di bianco così mi rimane colorato solo lo spazio tra le due parabole
Quando però riempio di bianco la parabola interna mi si nasconde parte del rettangolo..cosa sbaglio?
-
6 Gennaio 2013 alle 18:27 #81881
-
6 Gennaio 2013 alle 18:40 #81882::
Ciao OldClaudio, Marco ha scritto “se prima disegni il rettangolo e lo riempi, e poi disegni l’arco e lo riempi, otterrai proprio il risultato dell’immagine che vuoi riprodurre.” quindi non capisco la tua risposta..comunque mi interesserebbe sapere come si concatenano due parabole od oggetti in generale..grazie..
-
6 Gennaio 2013 alle 21:59 #81883::
Io ho capito che volevi il “ferro di cavallo” sopra il rettangolo.Per concatenare i path devi fare come nell’ultimo disegno di settore con l’interno verde che c’è nell’esempio del mauale di TikZ a pagina 31, prima dlel’inizio del §2.14. In pratica connetti scrivendo i percorsi parziali con — o (nell’esempio non c’è} con .. Il §2.13 è tutto dedicato a queste cose.
-
7 Gennaio 2013 alle 10:08 #81884::
Ciao Orlando,seguendo il “principio della sequenzialità” (come lo definisco io :D), ecco come puoi fare:
`% TikZ
\usepackage{tikz}
% Librerie
\usetikzlibrary{automata}
\usetikzlibrary{arrows}
\usetikzlibrary{backgrounds}
\usetikzlibrary{calc}
\usetikzlibrary{hobby}
\usetikzlibrary{intersections}
\usetikzlibrary{mindmap}
\usetikzlibrary{patterns}
\usetikzlibrary{positioning}
\usetikzlibrary{shadows}
\usetikzlibrary{shapes}
\usetikzlibrary{through}
\usetikzlibrary{trees}
% Pacchetti
\usepackage{tkz-euclide}
\usetkzobj{all}\begin{tikzpicture}
% definizioni e macro
\def\l{3}
\def\h{5}
\def\xrad{7}
\pgfmathsetmacro{\apx}{\l/3}
\pgfmathsetmacro{\apy}{\h/6}
\pgfmathsetmacro{\yrad}{\h/2-\apy}
\def\dy{1}
\def\xprad{4}
\pgfmathsetmacro{\yprad}{\yrad-\dy}% coordinate
%rettangolo
\coordinate (a) at (0,0);
\coordinate (b) at ($(a)+(\l,0)$);
\coordinate (c) at ($(a)+(\l,\h)$);
\coordinate (d) at ($(a)+(0,\h)$);%arco
\coordinate (a') at (\apx,\apy);% disegno rettangolo
\fill [cyan!55] (a) — (b) — (c) — (d) — cycle;
\draw (a) — (b) — (c) — (d) — cycle;% disegno arco
\fill [cyan!55] (a') arc [start angle=270, delta angle=180,x radius=\xrad, y radius=\yrad] — ++(0,-\dy) arc [start angle=90, delta angle=-180,x radius=\xprad, y radius=\yprad] — cycle;
\draw (a') arc [start angle=270, delta angle=180,x radius=\xrad, y radius=\yrad] — ++(0,-\dy) arc [start angle=90, delta angle=-180,x radius=\xprad, y radius=\yprad] — cycle;
\end{tikzpicture}`Ciao,
Marco.
-
7 Gennaio 2013 alle 11:01 #81885::
Ciao Orlando,ti propongo anche la soluzione che prevede l’uso dei layer. L’esempio è identico a quello di prima, ma con la differenza che ora a governare è la scelta del layer e non l’ordine con cui si scrive il codice:
`\begin{tikzpicture}
% layer
\pgfdeclarelayer{primoLayer}
\pgfdeclarelayer{secondoLayer}
\pgfsetlayers{primoLayer,main,secondoLayer}% definizioni e macro
\def\l{3}
\def\h{5}
\def\xrad{7}
\pgfmathsetmacro{\apx}{\l/3}
\pgfmathsetmacro{\apy}{\h/6}
\pgfmathsetmacro{\yrad}{\h/2-\apy}
\def\dy{1}
\def\xprad{4}
\pgfmathsetmacro{\yprad}{\yrad-\dy}% coordinate
%rettangolo
\coordinate (a) at (0,0);
\coordinate (b) at ($(a)+(\l,0)$);
\coordinate (c) at ($(a)+(\l,\h)$);
\coordinate (d) at ($(a)+(0,\h)$);%arco
\coordinate (a') at (\apx,\apy);% disegno rettangolo
\fill [cyan!55] (a) — (b) — (c) — (d) — cycle;
\draw (a) — (b) — (c) — (d) — cycle;% disegno arco
\begin{pgfonlayer}{primoLayer}
\fill [cyan!55] (a') arc [start angle=270, delta angle=180,x radius=\xrad, y radius=\yrad] — ++(0,-\dy) arc [start angle=90, delta angle=-180,x radius=\xprad, y radius=\yprad] — cycle;
\draw (a') arc [start angle=270, delta angle=180,x radius=\xrad, y radius=\yrad] — ++(0,-\dy) arc [start angle=90, delta angle=-180,x radius=\xprad, y radius=\yprad] — cycle;
\end{pgfonlayer}
\end{tikzpicture}`
Infatti ora, anche se l’arco è disegnato dopo (nel codice), viene disegnato sotto il rettangolo. Ricorda che se usi i layer, devi sempre dichiarare il layer [tt]main,[/tt] altrimenti qualsiasi cosa tu disegni fuori dall’ambiente [tt]pgfonlayer[/tt] non ti verrà disegnato.Ciao,
Marco.
-
7 Gennaio 2013 alle 11:08 #81886::
Ciao Orlando,OrlandoE come faccio a riempire l’arco? cioè io ho provato a fare così:
• disegno parabola esterna e riempio
• disegno parabola interna e riempio di bianco così mi rimane colorato solo lo spazio tra le due parabole
Quando però riempio di bianco la parabola interna mi si nasconde parte del rettangolo..cosa sbaglio?Ti succede questo perché se il percorso che vuoi riempire non è chiuso, ci pensa [tt]TikZ[/tt] a chiuderlo, unendo il punto finale e quello iniziale con un segmento, e poi esegue il riempimento. Prova con quest’esempio:
`\begin{tikzpicture}
\fill (0,0) arc (0:75:3cm);
\end{tikzpicture}`
Nel tuo caso, questo segmento che unisce punto finale e punto iniziale si trova dentro il rettangolo, e pertanto quando viene eseguito il riempimento viene cancellato parte del rettangolo stesso. Come vedi nella soluzione che ti ho proposto, il riempimento viene eseguito nel percorso chiuso dato dall’unione delle due ellissi e dei due segmenti che le uniscono.Spero di esserti stato utile. Ciao,
Marco.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.