- Questo topic ha 7 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 13 anni, 4 mesi fa da
Liverpool.
-
CreatoreTopic
-
15 Aprile 2013 alle 10:10 #84917::
Buongiorno,
ho necessità di riprodurre un disegno simile a questo:[attachment=670]Conic_sections1.gif[/attachment]
per spiegare le coniche.
Ho abbozzato un codice TikZ, ma subito mi sono trovato in difficoltà (vedi: qui).Mi sembra di capire che [tt]Asymptote[/tt] che non conosco 🙁 sia molto adatto…
Ora il mio quesito: mi suggerite di insistere con TikZ, oppure di trovare il tempo necessario per imparare [tt]Asymptote[/tt]? (Considerate che non mi capita spesso di dover disegnare solidi!)
Con TikZ qualcuno sa come ovviare al problema evidenziato nel link?
Saluti
Attachments:
You must be logged in to view attached files. -
CreatoreTopic
-
AutoreRisposte
-
-
15 Aprile 2013 alle 14:11 #84918
-
15 Aprile 2013 alle 16:06 #84919::
Forse ti riferisci al disegno del cono. L’ultima generatrice visibile del cono è quella che, proiettata sul piano prospettico risulta tangente all’ellisse della base, perciò i punti di tangenza non è detto che si trovino sull’asse maggiore dell’ellisse (anzi, teoricamente non si trovano mai). Se questa ha equazione
\[\frac{(x-x_C)^2}{a^2}+\frac{(y-y_C)^2}{b^2}=1\]
e se l’altezza proiettata del cono è \(h\), allora le coordinate dei punti di tangenza sono (se non ho sbagliato i calcoli):
\[ PROTECTED2 \]
Quindi il codice va riscritto tenendo conto di questi punti. Nel caso del tronco di cono ovviamente vanno determinate le coppie di punti su ogni circonferenza.Osservazione: come avrai notato, i punti di tangenza si trovano sull’asse maggiore se \(h\to\pm\infty\), cioè nella pratica quando il cono è molto alto, motivo per il quale, in quel caso, sembra che i punti di tangenza si trovino sull’asse dell’ellisse.
Osservazione 2: a parità di altezza, più è schiacciata l’ellisse, più i punti di tangenza sembrano trovarsi sull’asse dell’ellisse.
Osservazione 3: le formule valgono per una proiezione assonometrica ortografica.Eccoti un codice elementare che illustra il metodo descritto. Puoi provare a cambiare i valori nel preambolo per vedere come funziona. Gli angoli di partenza e arrivo degli archi si ricavano dall’equazione dell’ellisse in forma polare (vedi le osservazioni in questa conversazione).
`\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shadings}
\def\xc{0} % ascissa del centro dell'ellisse
\def\yc{0} % ordinata del centro dell'ellisse
\def\a{2} % lunghezza del semiasse maggiore
\def\b{1} % lunghezza del semiasse minore
\def\h{4} % altezza del cono
\pgfmathsetmacro{\xp}{\xc+\a*sqrt(1-(\b/\h)^2)} % ascissa del punto di tangenza “destro”
\pgfmathsetmacro{\yp}{\yc+\b^2/\h} % ordinate dei punti di tangenza
\pgfmathsetmacro{\t}{acos((\xp-\xc)/\a)} % angolo associato al punto di tangenza destro (in gradi)
\begin{document}
\begin{tikzpicture}
\fill [top color=gray!50, bottom color=gray!5] (\xc,\yc) ellipse ({\a} and \b); % retino della base
\draw [dashed] (\xp,\yp) arc (\t:{180-\t}:{\a} and \b); % tratteggio posteriore
\filldraw(\xc,{\yc+\h}) — (\xp,\yp) arc (\t:{-180-\t}:{\a} and \b) — cycle; % retino della sup. laterale e contorno
\end{tikzpicture}
\end{document}`[attachment=675]prova2_2013-04-17.png[/attachment]
Versione alternativa con uno [tt]scope[/tt] (le coordinate del centro dell’ellisse sono il valore della chiave [tt]shift[/tt]).
`\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shadings}
\def\a{2} % lunghezza del semiasse maggiore
\def\b{1} % lunghezza del semiasse minore
\def\h{4} % altezza del cono
% ascissa del punto di tangenza “destro” rispetto al centro dell'ellisse:
\pgfmathsetmacro{\xp}{\a*sqrt(1-(\b/\h)^2)}
% ordinate dei punti di tangenza rispetto al centro dell'ellisse:
\pgfmathsetmacro{\yp}{\b^2/\h}
% angolo associato al punto di tangenza “destro” (in gradi):
\pgfmathsetmacro{\t}{acos(\xp/\a)}
\begin{document}
\begin{tikzpicture}
\begin{scope}[shift={(0,0)}]
\fill [top color=gray!50, bottom color=gray!5] (0,0) ellipse ({\a} and \b); % retino della base
\draw [dashed] (\xp,\yp) arc (\t:{180-\t}:{\a} and \b); % tratteggio posteriore
\filldraw(0,\h) — (\xp,\yp) arc (\t:{-180-\t}:{\a} and \b) — cycle; % retino della sup. laterale e contorno
\end{scope}
\end{tikzpicture}
\end{document}`
Ciao
Attachments:
You must be logged in to view attached files. -
15 Aprile 2013 alle 17:12 #84920::
alegenn” post=84277Buongiorno,
ho necessità di riprodurre un disegno simile a questo:[attachment=670]Conic_sections1.gif[/attachment]
per spiegare le coniche.
Ho abbozzato un codice TikZ, ma subito mi sono trovato in difficoltà (vedi: qui).Mi sembra di capire che [tt]Asymptote[/tt] che non conosco 🙁 sia molto adatto…
Ora il mio quesito: mi suggerite di insistere con TikZ, oppure di trovare il tempo necessario per imparare [tt]Asymptote[/tt]? (Considerate che non mi capita spesso di dover disegnare solidi!)
Con TikZ qualcuno sa come ovviare al problema evidenziato nel link?
Saluti
Infatti, anche secondo me TikZ crea difficoltà: non perché sia virtualmente impossibile riprodurre il disegno, ma perché sarebbe veramente lungo e laborioso (penso anche a come impostare le trasparenze oltre che, ovviamente, alle proiezioni – cosa di gran lunga più difficile). Conta anche che, per quanto ho visto frequentando TeX.SX, chi ha posto quella domanda è forse uno degli utenti che meglio ha affrontato la tematica 3D.
Poi, puoi sempre tentare: recentemente, ho visto come realizzare una piramide How to draw this pyramid with TeX?: ma guarda la differenza già solo che c’è nel codice PSTricks vs TikZ…
Ciao
Claudio
-
15 Aprile 2013 alle 17:36 #84921
-
15 Aprile 2013 alle 19:03 #84922
-
16 Aprile 2013 alle 16:11 #84923::
Altro esempio che potrebbe interessarti: Projection of Circle onto Spherical Surface.Ciao
Claudio
-
17 Aprile 2013 alle 6:25 #84924
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.