
Ich lerne, wie man TikZ/PGF benutzt. Ich möchte dieses Bild zeichnen:
So habe ich angefangen:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,arrows,positioning,fit,calc,}
\begin{document}
\begin{tikzpicture}
\node (sun) at (0,0) [circle, fill=yellow, radius=0.3cm]{};
\node (sunlabel) [above=0.08 of sun]{Sun};
\node (root) at (0,0) [draw, circle, radius=3cm]{};
\end{tikzpicture}
\end{document}
Das Problem ist, dass der zweite Kreis nicht gezeichnet wird. Ich weiß nicht, wo das Problem liegt. Diese Syntax funktioniert, aber ich weiß nicht, wie ich den Kreisen einen Namen gebe und wie ich einen Kreis mit einer Farbe fülle.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,arrows,positioning,fit,calc,}
\begin{document}
\begin{tikzpicture}
\draw (0,0) circle [radius=.3cm, fill=yellow];
\draw (0,0) circle [radius=2cm];
\path[
%rotate=-15.2,
postaction={
decoration={
text along path,
text={%
OORT CLOUD
},
text align=center,
reverse path
},
decorate
}
]
(-27:2.2cm) arc (-27:210:2.2cm);
\end{tikzpicture}
\end{document}
Antwort1
Sie müssen die akzentuierten Zeichen in Klammern setzen, circle label
da PGF die Zeichenfolge in Token aufteilt und somit die Akzente von den Zeichen trennt, was zu merkwürdigen Fehlern führt.
Ich habe die Beschriftungen ins Französische übersetzt, um das Verhalten hervorzuheben (ich spreche kein Französisch, daher hoffe ich, dass ich nicht zu viele Fehler gemacht habe).
\documentclass[tikz]{standalone}
\usepackage[utf8]{inputenx}
\usetikzlibrary{decorations.text}
\begin{document}
\sffamily
\begin{tikzpicture}[
white,
ultra thick,
planet/.style = {draw,fill,circle,inner sep=#1},
circle label/.style = {
postaction={
decoration={
text along path,
text = {#1},
text align=center,
text color=white,
reverse path,
},
decorate,
}
}
]
\filldraw[black] (-7,-7) rectangle (7,8);
\node at (0,7.5) {\bfseries\Large Voisins les plus proches du soleil};
\path[circle label={Nuage d'Oort}] (0,-1.2) arc (-90:360-90:1.2);
\draw[dotted] (0,0) circle (1);
\foreach \i in {2,4,6} {
\path[circle label={\i\ Ann{é}e lumi{è}res}] (0,-\i-.2) arc (-90:360-90:\i+.2);
\draw (0,0) circle (\i);
}
\node[yellow,planet=3pt,label={above:Soleil}] at (0,0) {};
\node[red,planet=3pt,label={[text width=1.5cm,align=right]0:Proxima Centauri déc.\ 1917}] at (44:4.3) {};
\node[yellow,planet=4pt,label={[text width=2.5cm,align=center]90:Alpha Centauri déc.\ 1917}] at (50:4.3) {};
\node[red!50!black,planet=2pt,label={[text width=2.5cm,align=center]0:WISE 1049-5319 déc.\ 2013}] at (54:6.3) {};
\node[red!50!black,planet=2pt] at (57:6.3) {};
\node[red,planet=3pt,label={[text width=3cm,align=center]95:L'étoile de Bernard déc.\ 1916}] at (125:6) {};
\end{tikzpicture}
\end{document}
Antwort2
Wenn Sie die Syntax verwenden:
\draw [fill=yellow] (0,0) circle (0.3cm) node (sun) {};
dann funktioniert alles wie erwartet:
Anmerkungen:
- Ich habe ein
draw=none
für die Sonne hinzugefügt, da Sie wahrscheinlich keinen Rahmen darum haben möchten. - Ich habe Ihnen die ursprünglichen Zeilen als Kommentare hinterlassen, damit Sie die Unterschiede sehen können.
Code:
\documentclass[border=2pt]{standalone}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,arrows,positioning,fit,calc,}
\begin{document}
\begin{tikzpicture}
%\node (sun) at (0,0) [circle, fill=yellow, radius=0.3cm] {};
\draw [fill=yellow, draw=none] (0,0) circle (0.3cm)
node (sun) {};
\node (sunlabel) [above=0.08 of sun]{Sun};
%\node (root) at (0,0) [draw=red, circle, radius=3cm] {};
\draw [draw=red, ultra thick] (0,0) circle (3.0cm)
node (planet) {};
\end{tikzpicture}
\end{document}
Antwort3
Weniger Tastenanschläge mit PSTricks.
\documentclass[pstricks,border=12pt]{standalone}
\begin{document}
\begin{pspicture}(-2,-2)(2,2)
\pscircle*[linecolor=orange]{5pt}
\pscircle{2}
\end{pspicture}
\end{document}