Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

08 Jun '16, 15:37

esdd's gravatar image

esdd
17.8k304257

Mit `domain=-4:4` wird ein Teil des Kreises zwei Mal gezeichnet. Die kleinen Striche sind dabei nicht deckungsgleich und dadurch scheint die Linie in dem Bereich durchgezogen zu sein. Wenn Du statt dessen domain=-pi:pi oder `domain=0:2*pi` verwendest, bekommst Du das gewünschte Ergebnis: ![alt text][1] ---------- Das war zwar jetzt nicht gefragt, aber ich würde `x`, `y` und `z` so definieren, dass sie mit der Zeichnung übereinstimmen. \documentclass{scrartcl} \usepackage[english]{babel} \usepackage[utf8]{inputenc} \usepackage{tikz} \tikzset{ xyz/.style={x={(-.5cm,-.5cm)},y={(1cm,0cm)},z={(0cm,1cm)}} } \begin{document} \begin{figure}[h!] \centering \begin{tikzpicture}[xyz,scale=2] \draw[thick,->] (-2,0,0) -- (2,0,0) node[left]{$x$}; \draw[thick,->] (0,-2,0) -- (0,2,0) node[right]{$y$}; \draw[thick,->] (0,0,0) -- (0,0,2) node[above]{$z$}; \draw[thick,domain=-pi:pi,samples=100,variable=\x,dashed] plot({cos(\x r)},{sin(\x r)},{0}); \end{tikzpicture} \end{figure} \end{document} Das Ergebnis ist das gleiche wie oben. Da TikZ standardmäßig in der `xy`-Ebene zeichnet, zeichnet(siehe Kommentar von @Henri), lässt sich dieser Kreis dann auch einfach mit \draw[dashed]circle[radius=1]; erzeugen. ![alt text][2] Code: \documentclass{scrartcl} \usepackage[english]{babel} \usepackage[utf8]{inputenc} \usepackage{tikz} \tikzset{ xyz/.style={x={(-.5cm,-.5cm)},y={(1cm,0cm)},z={(0cm,1cm)}} } \begin{document} \begin{figure}[h!] \centering \begin{tikzpicture}[xyz,scale=2] \draw[thick,->] (-2,0,0) -- (2,0,0) node[left]{$x$}; \draw[thick,->] (0,-2,0) -- (0,2,0) node[right]{$y$}; \draw[thick,->] (0,0,0) -- (0,0,2) node[above]{$z$}; \draw[dashed]circle[radius=1]; \end{tikzpicture} \end{figure} \end{document} ---------- Außerdem gibt es noch eine `3d` Bibliothek, die aber meines Wissens keine Doku hat. Mit der kann man auch einen Kreis zeichnen lassen, wenn er in einer zur `xy`-, `yz`- oder `xz`-Ebene parallelen Ebene liegt. \documentclass{scrartcl} \usepackage[english]{babel} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{3d} \tikzset{ xyz/.style={x={(-.5cm,-.5cm)},y={(1cm,0cm)},z={(0cm,1cm)}} } \begin{document} \begin{figure}[h!] \centering \begin{tikzpicture}[xyz,scale=2] \draw[thick,->] (-2,0,0) -- (2,0,0) node[left]{$x$}; \draw[thick,->] (0,-2,0) -- (0,2,0) node[right]{$y$}; \draw[thick,->] (0,0,0) -- (0,0,2) node[above]{$z$}; \draw[dashed,canvas is xy plane at z=.75 ]circle[radius=1]; \end{tikzpicture} \end{figure} \end{document} ![alt text][3] [1]: http://texwelt.de/wissen/upfiles/tw_3dkreis.png [2]: http://texwelt.de/wissen/upfiles/tw_3dkreis1.png [3]: http://texwelt.de/wissen/upfiles/tw_3dkreis2.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

08 Jun '16, 08:56

esdd's gravatar image

esdd
17.8k304257

Mit `domain=-4:4` wird ein Teil des Kreises zwei Mal gezeichnet. Die kleinen Striche sind dabei nicht deckungsgleich und dadurch scheint die Linie in dem Bereich durchgezogen zu sein. Wenn Du statt dessen domain=-pi:pi oder `domain=0:2*pi` verwendest, bekommst Du das gewünschte Ergebnis: ![alt text][1] ---------- Das war zwar jetzt nicht gefragt, aber ich würde `x`, `y` und `z` so definieren, dass sie mit der Zeichnung übereinstimmen. \documentclass{scrartcl} \usepackage[english]{babel} \usepackage[utf8]{inputenc} \usepackage{tikz} \tikzset{ xyz/.style={x={(-.5cm,-.5cm)},y={(1cm,0cm)},z={(0cm,1cm)}} } \begin{document} \begin{figure}[h!] \centering \begin{tikzpicture}[xyz,scale=2] \draw[thick,->] (-2,0,0) -- (2,0,0) node[left]{$x$}; \draw[thick,->] (0,-2,0) -- (0,2,0) node[right]{$y$}; \draw[thick,->] (0,0,0) -- (0,0,2) node[above]{$z$}; \draw[thick,domain=-pi:pi,samples=100,variable=\x,dashed] plot({cos(\x r)},{sin(\x r)},{0}); \end{tikzpicture} \end{figure} \end{document} Das Ergebnis ist das gleiche wie oben. Da TikZ standardmäßig in der `xy`-Ebene zeichnet, lässt sich dieser Kreis dann auch einfach mit \draw[dashed]circle[radius=1]; erzeugen. ![alt text][2] Code: \documentclass{scrartcl} \usepackage[english]{babel} \usepackage[utf8]{inputenc} \usepackage{tikz} \tikzset{ xyz/.style={x={(-.5cm,-.5cm)},y={(1cm,0cm)},z={(0cm,1cm)}} } \begin{document} \begin{figure}[h!] \centering \begin{tikzpicture}[xyz,scale=2] \draw[thick,->] (-2,0,0) -- (2,0,0) node[left]{$x$}; \draw[thick,->] (0,-2,0) -- (0,2,0) node[right]{$y$}; \draw[thick,->] (0,0,0) -- (0,0,2) node[above]{$z$}; \draw[dashed]circle[radius=1]; \end{tikzpicture} \end{figure} \end{document} ---------- Außerdem gibt es noch eine `3d` Bibliothek, die aber meines Wissens keine Doku hat. Mit der kann man den auch einen Kreis auch durch `\draw[dashed,canvas is xy plane at z=0 ]circle[radius=1];` zeichnen lassen. lassen, wenn er in einer zur `xy`-, `yz`- oder `xz`-Ebene parallelen Ebene liegt. \documentclass{scrartcl} \usepackage[english]{babel} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{3d} \tikzset{ xyz/.style={x={(-.5cm,-.5cm)},y={(1cm,0cm)},z={(0cm,1cm)}} } \begin{document} \begin{figure}[h!] \centering \begin{tikzpicture}[xyz,scale=2] \draw[thick,->] (-2,0,0) -- (2,0,0) node[left]{$x$}; \draw[thick,->] (0,-2,0) -- (0,2,0) node[right]{$y$}; \draw[thick,->] (0,0,0) -- (0,0,2) node[above]{$z$}; \draw[dashed,canvas is xy plane at z=0 z=.75 ]circle[radius=1]; \end{tikzpicture} \end{figure} \end{document} ![alt text][2] text][3] [1]: http://texwelt.de/wissen/upfiles/tw_3dkreis.png [2]: http://texwelt.de/wissen/upfiles/tw_3dkreis1.pnghttp://texwelt.de/wissen/upfiles/tw_3dkreis1.png [3]: http://texwelt.de/wissen/upfiles/tw_3dkreis2.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

07 Jun '16, 22:33

esdd's gravatar image

esdd
17.8k304257