Archiv verlassen und diese Seite im Standarddesign anzeigen : TikZ: Kreis, von dem eine Hälfte ausgemalt ist?
Mac-User09
27-12-2015, 14:47
Hallo,
ich möchte ich gerne einen Kreis mit TikZ malen. Der Kreis an sich ist kein Problem:
\documentclass[a4paper, 12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman,english]{babel}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw [line width=0.05em] (0,0) circle [radius=0.34em];
\end{tikzpicture}
\end{document}
Aber von diesem Kreis nun die Hälfte ausgemalt, bekomme ich nicht hin. Es soll so aussehen, wie in diesem Bild: http://de.freepik.com/freie-ikonen/halb-gefullten-kreis_744822.htm (http://de.freepik.com/freie-ikonen/halb-gefullten-kreis_744822.htm)
Ich dachte, man könne evtl. einfach den ganzen Kreis nehmen und einen Halbkreis direkt drüber zeichnen, damit man dann mit "rotate" das ausgemalte Stück entsprechend drehen kann. Denn insgesamt brauche ich das ganze 4 Mal, nämlich das ausgemalte Stück immer um 90 Grad weiter gedreht.
Wie bekomme ich das hin?
Grüße
Mac
PS: Hoffe alle hatten schöne Weihnachten...
Eine Möglichkeit wäre
\documentclass{standalone}
\usepackage{tikz}
\newcommand\startwinkel{40}
\begin{document}
\begin{tikzpicture}
%\begin{scope}
\clip [preaction={draw,line width=0.05em}] (0,0) circle [radius=.34em];
\fill (1,0)--+(\startwinkel:.34em)arc[start angle=\startwinkel,delta angle=180,radius=.34em];
%\end{scope}
\end{tikzpicture}
\end{document}
Das Clippen ist dabei nötig, weil arc die Bounding Box vergrößern kann. Wird noch mehr in der gleichen tikzpicture Umgebung gezeichnet, muss man das Clippen mit einem scope lokal halten.
Da Du mehrere Halbkreise brauchst, könnte man auch ein pic definieren:
\documentclass{standalone}
\usepackage{tikz}
\tikzset{
halbkreis/.pic={
\clip [preaction={draw,line width=0.05em}] (0,0) circle [radius=.34em];
\fill (0,0)--+(#1:.34em)arc[start angle=#1,delta angle=180,radius=.34em];
}
}
\begin{document}
\begin{tikzpicture}
\foreach \i in {0,...,3}
\pic at ({\i*1em},0) {halbkreis={\i*90}};
\end{tikzpicture}
\end{document}
Gruß
Elke
Mac-User09
07-01-2016, 11:36
Hallo Elke,
entschuldige bitte meine späte Antwort. Feiertage/Familie und so...:)
Ich habe mich für das zweite Minimalbeispiel entschieden, in dem du den Halbkreis definierst. Könntest du mir das bitte noch erklären?
Ich verstehe die Definition nicht ganz, warum dort ein Halbkreis herauskommt. Also das "tikzset"
Im tikzpicture ist mir klar, dass "foreach" eine Schleife ist und den Halbkreis entsprechend dreht. Warum sieht aber die Zeile "\pic at ({\i*1em},0) {halbkreis={\i*90}};" so aus, wie sie aussieht?
Wahrscheinlich ganz doofe fragen, aber TikZ ist noch nicht so gut bei mir angekommen...
Danke und Grüße
PS: Hoffe, du bist gut über die Feiertage ins neue Jahr gekommen...?
Für das in \tikzset definierte halbkreis/.pic habe ich im Prinzip den gleichen Code, wie im ersten Beispiel verwendet. Lediglich der Winkel muss nun als Argument übergeben werden.
\foreach \i in {0,...,3}
\pic at ({\i*1em},0) {halbkreis={\i*90}};
Das ist eine Schleife, die das pic mit seinem Ursprung am Punkt ({\i*1em},0} der Zeichnung einfügt. Als pic Code wird der mit \tikzset definierte verwendet, wobei diesem das geforderte Argument, also der Winkel übergeben wird.
Wenn Du nur einen einzelnen Halbkreis brauchst, kannst Du das mit \pic at (<punkt>){halbkreis={<winkel in grad>}; oder aber \path (<punkt) pic{halbkreis={<winkel in grad>}; tun.
Gruß
Elke
Mac-User09
10-01-2016, 11:42
Ah, vielen Dank dafür.
Was mir noch nicht ganz klar ist:
\fill (0,0)--+(#1:.34em)arc[start angle=#1,delta angle=180,radius=.34em];
"fill" macht mir das dann folgende ausgefüllt. Das ist klar
(0,0) ist wohl der Ursprung in Polarkoordinaten? Das ist wie bei "meinem" Kreis.
"Arc" steht für Bogen, der Rest sind irgendwelche Koordinaten. Ab "--+" verstehe ich nichts mehr. Was bedeutet z.B. "#1"? Oder wofür ist das "delta"?
Grüße
Mac
Bitte lies Dir im pgfmanual das Kapitel 13 "Specifying Coordinates" und den Abschnitt 14.7 "The Arc Operation" durch.
#1 ist der übliche Platzhalter für das übergebene (erste) Argument. Beim Ausführen wird #1 automatisch durch den als Argument übergebenen Winkel ersetzt.
Mac-User09
12-01-2016, 14:23
Ah, super danke sehr. Hat geholfen!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.