Ich möchte die Kante AB dick blau und die Kanten AC und BC dick rot einfärben.
Unter Bezugnahme auf die Antwort inMehrere Farbkanten in TikZ, eine Möglichkeit besteht darin, den \clip[draw]
Befehl zu verwenden. Ich bin mir jedoch nicht sicher, wie ich ihn in meinem Kontext verwenden soll, da meine Form ein Dreieck ist und das Dreieck ebenfalls mit orangefarbener Farbe gefüllt ist.
Erwartetes Ergebnis:
Aktuelles Ergebnis:
Das Dreieck sollte weiterhin mit der Farbe Orange gefüllt sein und die Kanten sollten die oben genannte Farbe haben.
Notiz: Dieses Beispiel stammt nur aus dem PGF-Handbuch. Die Bereitstellung des Codes im Handbuch ohne Erklärung wird nicht empfohlen/geschätzt.
Gibt es eine alternative Möglichkeit zum Ausfüllen einer Form, statt den Befehl \filldraw
oder zu verwenden?\draw[fill]
MWE:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{through}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}[help lines/.style={thin,draw=black!50}]
\coordinate[label=left:\textcolor{blue!80!black}{$A$}] (A) at (0,0);
\coordinate[label=right:\textcolor{blue!80!black}{$B$}] (B) at (1.25,0.25);
\draw[name path=A--B] (A) -- (B);
% \draw let \p1 = ($(B) - (A)$),
% \n2 = {veclen(\x1,\y1)}
% in
% (A) circle (\n2)
% (B) circle (\n2);
\node (D) [name path=D,draw,circle through=(B),label=left:$D$,help lines,draw] at (A) {};
\node (E) [name path=E,draw,circle through=(A),label=right:$E$,help lines,draw] at (B) {};
\path [name intersections={of=D and E, by={[label=above:$C$]C,[label=below:$C'$]C'}}];
%\coordinate[label=above:$C$] (C) at (intersection-1); using by instead
\draw [name path=C--C',red] (C) -- (C');
\path [name intersections={of=A--B and C--C', by=F}];
\node[fill=red,inner sep=1pt, label=-45:$F$] at (F) {};
\draw[fill=orange!80] (A) -- (B) -- (C) -- cycle;
\foreach \point in {A,B,C}
\fill [black,opacity=0.5] (\point) circle (2pt);
\end{tikzpicture}
\end{document}
Antwort1
Einige Optionen können angewendet werden aufTeil des Weges, dies ist der Fall bei rounded corners
. Dies funktioniert jedoch nicht mit den colors
auf Seite 149 des Handbuchs 3.1.1 angegebenen, die immer für die geltengesamter Pfad.
Screenshot der Seite 149:
Um es einfacher zu machen:
- Ich habe zunächst das ABC-Dreieck orange eingefärbt mit dem
\fill
Befehl(das nichts zeichnet); - dann zeichnete ichzweiPfade, einer in
blue
, der andere inred
.
Kommentierter Code:
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{through}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}[help lines/.style={thin,draw=black!50}]
\coordinate[label=left:\textcolor{blue!80!black}{$A$}] (A) at (0,0);
\coordinate[label=right:\textcolor{blue!80!black}{$B$}] (B) at (1.25,0.25);
\path[name path=A--B] (A) -- (B);% <-- construct the path, but not draw it
% \draw let \p1 = ($(B) - (A)$),
% \n2 = {veclen(\x1,\y1)}
% in
% (A) circle (\n2)
% (B) circle (\n2);
\node (D) [name path=D,draw,circle through=(B),label=left:$D$,help lines,draw] at (A) {};
\node (E) [name path=E,draw,circle through=(A),label=right:$E$,help lines,draw] at (B) {};
\path [name intersections={of=D and E, by={[label=above:$C$]C,[label=below:$C'$]C'}}];
%\coordinate[label=above:$C$] (C) at (intersection-1); using by instead
\path [name path=C--C',red] (C) -- (C');
\path [name intersections={of=A--B and C--C', by=F}];
%\node[fill=red,inner sep=1pt, label=-45:$F$] at (F) {};
\fill[orange!80] (A) -- (B) -- (C) -- cycle;%<-- only fill without draw the edges
\draw[blue,thick](A)--(B);%<-- draw in blue
\draw[red,thick](A)--(C)--(B);%<-- draw in red
\foreach \point in {A,B,C}
\fill [black,opacity=0.5] (\point) circle (2pt);
\end{tikzpicture}
\end{document}
Antwort2
Sie können einige Ihrer Pfade speichern, indem Sie die Möglichkeiten des Befehls \path
oder nutzen \draw
. Insbesondere die leeren Pfade können entfernt werden, indem die Schnittpunkte in die entsprechenden Pfade integriert werden.
Um von bis zu farblich vorzugehen, A
ziehen B
Sie einfach eine Linie zwischen den beiden Punkten (nachdem Sie den Rahmen gezeichnet oder einfach entfernt haben). Dasselbe funktioniert für A--B--C
.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{through}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}[help lines/.style={thin,draw=black!50}]
\path[name path=A--B] (0,0) coordinate[label=left:\textcolor{blue!80!black}{$A$}] (A) --
(1.25,0.25) coordinate[label=right:\textcolor{blue!80!black}{$B$}] (B);
\node (D) [name path=D,draw,circle through=(B),label=left:$D$,help lines,draw] at (A) {};
\node (E) [name path=E,draw,circle through=(A),label=right:$E$,help lines,draw] at (B) {};
\draw[name intersections={of=D and E, by={[label=above:$C$]C,[label=below:$C'$]C'}},
name path=C--C',red] (C) -- (C');
\node[fill=red,inner sep=1pt,name intersections={of=A--B and C--C', by=F},label=-45:$F$] at (F) {};
\draw[draw=none,fill=orange!80] (A) -- (B) -- (C) -- cycle;
\draw[blue,thick] (A) -- (B);
\draw[red,thick] (A) -- (C) -- (B);
\foreach \point in {A,B,C}
\fill [black,opacity=0.5] (\point) circle (2pt);
\end{tikzpicture}
\end{document}