Wie fülle ich am besten eine oder mehrere dieser Teilflächen farbig, die teils durch Schnittpunkte festgelegt werden? Mit Öffne in Overleaf
%\documentclass[border=15mm, varwidth]{standalone} \documentclass{scrreprt} \usepackage{selinput} \SelectInputMappings{adieresis={ä}, germandbls={ß}} \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \usepackage{microtype} \usepackage{tikz} \usetikzlibrary{shapes} \usetikzlibrary{intersections} \usepackage{pgfplots} \usepgfplotslibrary{fillbetween} %\usepackage{mwe} %========= \begin{document} %========= \begin{tikzpicture}[ scale=0.5, %outer sep=0pt, inner sep=0pt, %QUADRAT/.style={}, ] % Für fillbetween %\pgfdeclarelayer{pre main} %\pgfsetlayers{pre main,main} % % Größen \def\a{10cm} \pgfmathsetmacro{\W}{sqrt(2)/2} % Orientierungsfiguren %\draw[red, fill] (0,0) circle[radius=5pt]; %\draw[brown] (0,0)--(0.5*\a,0); %\fill[cyan] (\a,\a) circle[radius=5pt]; %\fill[] (2*\a,0.5*\a) circle[radius=5pt]; % Gesamtes Rechteck \draw[name path=Rechteck] (0,0) rectangle (2*\a,\a); % Figur inks \path[name path=QuadratLINKS] (0,0) rectangle (\a,\a); \draw[name path=KreisLINKS] (0.5*\a,0.5*\a) circle[radius=0.5*\a]; % Figur rechts \path[name path=QuadratRECHTS] (\a,0) rectangle (2*\a,\a); \draw[name path=KreisRECHTS] (1.5*\a,0.5*\a) circle[radius=0.5*\a]; % Diagonale \draw[name path=DIAGONALE] (0,0) -- (2*\a,\a); % Beschriftung %\node[right] at (2*\a,0.5*\a) {$a$}; %\node[below] at (0.9*\a,0) {$2a$}; % Schnittpunkte links %\fill [red, name intersections={of=KreisLINKS and DIAGONALE}] %(intersection-1) circle (2pt) node {1} %(intersection-2) circle (2pt) node {2}; % Schnittpunkte rechts \fill [red, name intersections={of=KreisRECHTS and DIAGONALE}] (intersection-1) circle (2pt) node {3} (intersection-2) circle (2pt) node {4}; %% Für fillbetween % Kreissegment OR füllen \path [draw,blue, fill, name path=3and4, intersection segments={ of=KreisRECHTS and DIAGONALE, sequence={A1 -- B1} %[reverse] }]; % Kreissegment OL füllen \path [draw, orange, fill, name path=1and3, intersection segments={ of=KreisLINKS and DIAGONALE, sequence={A1 -- B1} %[reverse] }]; %\pgfonlayer{pre main} %\fill [ %blue!40!white, %intersection segments={ %of=3and4 and KreisRECHTS, %sequence={A1 -- B1[reverse]}, % %} %]; %\endpgfonlayer % \end{tikzpicture} %========= \end{document} %========= |
Hier ist mal ein Vorschlag bei der auf dem Clippen passender Bereiche beruht: Open in Online-Editor
\documentclass[border=15mm]{standalone} \usepackage{tikz} \usetikzlibrary{intersections} \begin{document} \begin{tikzpicture}[ scale=0.5, very thick, fill opacity=.5 ] \pgfdeclarelayer{pre main} \pgfsetlayers{pre main,main} % Größen \newcommand\D{10cm} \tikzset{ KreisLinks/.style={insert path={(.5*\D,.5*\D)circle[radius=.5*\D]}}, KreisRechts/.style={insert path={(1.5*\D,.5*\D)circle[radius=.5*\D]}}, Diagonalendreieck/.style={insert path={(0,0)--+(2*\D,\D)--+(2*\D,0)--cycle}}, reverseclip/.style={insert path={(current bounding box.south west)rectangle(current bounding box.north east)}} } % Gesamtes Rechteck \draw[name path=Rechteck](0,0) rectangle +(2*\D,\D); % Kreis links \draw[ path picture={\fill[orange][Diagonalendreieck];}, name path=KreisLinks ] [KreisLinks]; % Kreis rechts \draw[ path picture={\fill[blue][Diagonalendreieck];}, name path=KreisRechts ] [KreisRechts]; %Diagonale \draw (0,0) -- +(2*\D,\D); % Schnittpunkte Kreise mit Rechtecken \path [name intersections={of=KreisLinks and Rechteck,name=KL}]; \path [name intersections={of=KreisRechts and Rechteck,name=KR}]; % Füllen der Teilflächen \pgfonlayer{pre main} \begin{scope} \clip[Diagonalendreieck]; \begin{scope} \clip(KL-2)rectangle(KL-3); \fill[red] [reverseclip] [KreisLinks] ; \end{scope} \begin{scope} \clip(KL-3)rectangle(KR-2-|KR-3); \fill[brown] [reverseclip] [KreisLinks] [KreisRechts] ; \end{scope} \begin{scope} \clip(KR-3)rectangle(KR-2); \fill[green] [reverseclip] [KreisRechts] ; \end{scope} \end{scope} \begin{scope} \clip(KR-1)rectangle(KR-2); \fill[yellow] [reverseclip] [KreisRechts] ; \end{scope} \endpgfonlayer \end{tikzpicture} \end{document} beantwortet 14 Aug '16, 22:39 esdd |
Mit der
fillbetween
-Library.OK, damit komme ich schonmal etwas weiter - siehe edit.