Tikz Picture, Fläche ausfüllen zwischen den Linien

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


heinrich
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Mo 14. Mai 2018, 19:28

Tikz Picture, Fläche ausfüllen zwischen den Linien

Beitrag von heinrich »

Hallo,

hat jemand eine Idee wie ich die Fläche zwischen den Linien grauen Linien einfärben also auffüllen kann?

Ich möchte einen Fachwerkträger aus Beton darstellen. Vermutlich ist der Anfang der außen Kanten schon nicht allzu geschickt gemacht aber ich wusste es nicht besser....

Über jeden Tipp wäre ich dankbar!
\documentclass[a4paper,10pt,open=right,twoside]{scrreprt}					
\usepackage[utf8]{inputenc}						
\usepackage[ngerman]{babel}						
\usepackage[T1]{fontenc}				
\usepackage{graphicx}							
\usepackage{xcolor}
\usepackage{tikz}
\usetikzlibrary{quotes,babel,angles,decorations.pathmorphing}
\usepackage{tikz-dimline}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}


\begin{document}


\def \b {0.1}
\def \c {0.2}

\begin{tikzpicture}[pencildraw/.style={gray!75, decorate, decoration={random steps,segment length=2pt,amplitude=0.1pt}}]%

	\draw[pencildraw] ($(0,0) + (-\b,-\b)$) -- ($(12,0) + (\b,-\b)$);
	\draw[pencildraw] ($(0,0) + (-\b,-\b)$) -- ($(0,1.6) + (-\b,\b)$);
	\draw[pencildraw] ($(12,0) + (\b,-\b)$) -- ($(12,1.6) + (\b,\b)$);
	\draw[pencildraw] ($(0,1.6) + (-\b,\b)$) -- ($(12,1.6) + (\b,\b)$);
	\draw[pencildraw] ($(0,0) + (\b,\c)$) -- ($(0,1.6) + (\b,-\b)$); %1
	\draw[pencildraw] ($(0,1.6) + (\b,-\b)$) -- ($(2,1.6) + (-1.5*\c,-\b)$); 
    \draw[pencildraw] ($(0,0) + (\b,\c)$) -- ($(2,1.6) + (-1.5*\c,-\b)$);
    \draw[pencildraw] ($(0,0) + (1.5*\c,\b)$) -- ($(2,1.6) + (-\b,-1.1*\c)$); 
    \draw[pencildraw] ($(2,0) + (-\b,\b)$) -- ($(2,1.6) + (-\b,-1.1*\c)$); 
    \draw[pencildraw] ($(0,0) + (1.5*\c,\b)$) -- ($(2,0) + (-\b,\b)$); 
    \draw[pencildraw] ($(2,0) + (\b,\c)$) -- ($(2,1.6) + (\b,-\b)$); 
    \draw[pencildraw] ($(2,1.6) + (\b,-\b)$) -- ($(4,1.6) + (-1.4*\c,-\b)$);
    \draw[pencildraw] ($(2,0) + (\b,\c)$) -- ($(4,1.6) + (-1.5*\c,-\b)$);
    \draw[pencildraw] ($(2,0) + (1.5*\c,\b)$) -- ($(4,1.6) + (-\b,-1.1*\c)$);
    \draw[pencildraw] ($(4,0) + (-\b,\b)$) -- ($(4,1.6) + (-\b,-1.1*\c)$);
    \draw[pencildraw] ($(2,0) + (1.5*\c,\b)$) -- ($(4,0) + (-\b,\b)$);%12
    \draw[pencildraw] ($(4,0) + (\b,\c)$) -- ($(4,1.6) + (\b,-\b)$);%13
    \draw[pencildraw] ($(4,1.6) + (\b,-\b)$) -- ($(6,1.6) + (-1.5*\c,-\b)$);
    \draw[pencildraw] ($(4,0) + (\b,\c)$) -- ($(6,1.6) + (-1.5*\c,-\b)$);
    \draw[pencildraw] ($(4,0) + (1.5*\c,\b)$) -- ($(6,1.6) + (0,-0.75*\c)$);
    \draw[pencildraw] ($(4,0) + (1.5*\c,\b)$) -- ($(8,0) + (-1.5*\c,\b)$);
    \draw[pencildraw] ($(6,1.6) + (0,-0.75*\c)$) -- ($(8,0) + (-1.5*\c,\b)$);
    \draw[pencildraw] ($(12,0) + (-\b,\c)$) -- ($(12,1.6) + (-\b,-\b)$); 
    \draw[pencildraw] ($(12,1.6) + (-\b,-\b)$) -- ($(10,1.6) + (1.5*\c,-\b)$); 
    \draw[pencildraw] ($(12,0) + (-\b,\c)$) -- ($(10,1.6) + (1.5*\c,-\b)$); 
    \draw[pencildraw] ($(12,0) + (-1.5*\c,\b)$) -- ($(10,1.6) + (\b,-1.1*\c)$);
    \draw[pencildraw] ($(10,0) + (\b,\b)$) -- ($(10,1.6) + (\b,-1.1*\c)$); 
    \draw[pencildraw] ($(10,0) + (\b,\b)$) -- ($(12,0) + (-1.5*\c,\b)$);    
    \draw[pencildraw] ($(10,0) + (-\b,\c)$) -- ($(10,1.6) + (-\b,-\b)$);
    \draw[pencildraw] ($(10,1.6) + (-\b,-\b)$) -- ($(8,1.6) + (1.4*\c,-\b)$);
    \draw[pencildraw] ($(10,0) + (-\b,\c)$) -- ($(8,1.6) + (1.5*\c,-\b)$);
    \draw[pencildraw] ($(10,0) + (-1.5*\c,\b)$) -- ($(8,1.6) + (\b,-1.1*\c)$);
    \draw[pencildraw] ($(8,0) + (\b,\b)$) -- ($(8,1.6) + (\b,-1.1*\c)$);
    \draw[pencildraw] ($(10,0) + (-1.5*\c,\b)$) -- ($(8,0) + (\b,\b)$);
    \draw[pencildraw] ($(8,0) + (-\b,\c)$) -- ($(8,1.6) + (-\b,-\b)$);
    \draw[pencildraw] ($(8,1.6) + (-\b,-\b)$) -- ($(6,1.6) + (1.5*\c,-\b)$);
    \draw[pencildraw] ($(8,0) + (-\b,\c)$) -- ($(6,1.6) + (1.5*\c,-\b)$);    
\end{tikzpicture}



\end{document}

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Verwende geschlossene Pfade zum Füllen. Da mir nicht klar ist, ob das Rechteck oder aber die Dreiecke oder beides gefüllt werden sollen, hier drei Vorschläge
\documentclass[10pt,open=right,twoside]{scrreprt}% a4paper ist default
%\usepackage[utf8]{inputenc}% nur bei älteren TeX-Distributionen nötig
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}

 
\usepackage{pgfplots}% lädt tikz, xcolor, graphicx, ...
\pgfplotsset{compat=1.15}% aktuell ist derzeit 1.16
\usetikzlibrary{quotes,babel,angles,decorations.pathmorphing}
\usepackage{tikz-dimline}
\show\b
\begin{document} 
\begin{tikzpicture}[pencildraw/.style={gray!75, decorate, decoration={random steps,segment length=2pt,amplitude=0.1pt}}]% 
   \def \b {0.1} 
   \def \c {0.2} 
   \draw[pencildraw]($(0,0) + (-\b,-\b)$) rectangle ($(12,1.6) + (\b,\b)$);
   \draw[pencildraw,fill=lightgray!50]
     ($(0,0) + (\b,\c)$) -- ($(0,1.6) + (\b,-\b)$) -- ($(2,1.6) + (-1.5*\c,-\b)$) -- cycle 
     ($(0,0) + (1.5*\c,\b)$) -- ($(2,1.6) + (-\b,-1.1*\c)$)--($(2,0) + (-\b,\b)$) -- cycle
     ($(2,0) + (\b,\c)$) -- ($(2,1.6) + (\b,-\b)$)-- ($(4,1.6) + (-1.4*\c,-\b)$) -- cycle
    ;
\end{tikzpicture} 

\begin{tikzpicture}[pencildraw/.style={gray!75, decorate, decoration={random steps,segment length=2pt,amplitude=0.1pt}}]% 
   \def \b {0.1} 
   \def \c {0.2} 
   \draw[pencildraw,fill=lightgray!50,even odd rule]
     ($(0,0) + (-\b,-\b)$) rectangle ($(12,1.6) + (\b,\b)$)
     ($(0,0) + (\b,\c)$) -- ($(0,1.6) + (\b,-\b)$) -- ($(2,1.6) + (-1.5*\c,-\b)$) -- cycle 
     ($(0,0) + (1.5*\c,\b)$) -- ($(2,1.6) + (-\b,-1.1*\c)$)--($(2,0) + (-\b,\b)$) -- cycle
     ($(2,0) + (\b,\c)$) -- ($(2,1.6) + (\b,-\b)$)-- ($(4,1.6) + (-1.4*\c,-\b)$) -- cycle
    ;
\end{tikzpicture}

\begin{tikzpicture}[pencildraw/.style={gray!75, decorate, decoration={random steps,segment length=2pt,amplitude=0.1pt}}]% 
   \def \b {0.1} 
   \def \c {0.2} 
   \draw[pencildraw,fill=orange!10]($(0,0) + (-\b,-\b)$) rectangle ($(12,1.6) + (\b,\b)$);
   \draw[pencildraw,fill=lightgray!50]
     ($(0,0) + (\b,\c)$) -- ($(0,1.6) + (\b,-\b)$) -- ($(2,1.6) + (-1.5*\c,-\b)$) -- cycle 
     ($(0,0) + (1.5*\c,\b)$) -- ($(2,1.6) + (-\b,-1.1*\c)$)--($(2,0) + (-\b,\b)$) -- cycle
     ($(2,0) + (\b,\c)$) -- ($(2,1.6) + (\b,-\b)$)-- ($(4,1.6) + (-1.4*\c,-\b)$) -- cycle
    ;
\end{tikzpicture}
\end{document}
Damit es nicht zu lang wird, habe ich die Anzahl der Dreiecke reduziert.

Off-Topic: Definiere Anweisungen nicht einfach mit \def ohne vorher zu überprüfen, dass nicht bereits welche mit gleichem Namen definiert sind und erst recht nicht global. Anweisungen, die aus nur einem Buchstaben bestehen, sind häufig schon "vergeben".

heinrich
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Mo 14. Mai 2018, 19:28

Beitrag von heinrich »

Stimmt, die Frage war nicht sehr eindeutig...

Aber dafür die Antwort! Besten Dank sehr hilfreich!
\documentclass[10pt,open=right,twoside]{scrreprt}% a4paper ist default 
%\usepackage[utf8]{inputenc}% nur bei älteren TeX-Distributionen nötig 
\usepackage[ngerman]{babel} 
\usepackage[T1]{fontenc} 


\usepackage{pgfplots}% lädt tikz, xcolor, graphicx, ... 
\pgfplotsset{compat=1.15}% aktuell ist derzeit 1.16 
\usetikzlibrary{quotes,babel,angles,decorations.pathmorphing} 
\usepackage{tikz-dimline} 
\show\b 
\begin{document} 



\def \b {0.1}
\def \c {0.2}

\begin{tikzpicture}[pencildraw/.style={gray!75, decorate, decoration={random steps,segment length=2pt,amplitude=0.4pt}}]

\draw[pencildraw,fill=lightgray!50,even odd rule] 
($(0,0) + (-\b,-\b)$) rectangle ($(12,1.6) + (\b,\b)$) 
($(0,0) + (\b,\c)$) -- ($(0,1.6) + (\b,-\b)$) -- ($(2,1.6) + (-1.4*\c,-\b)$) -- cycle 
($(0,0) + (1.5*\c,\b)$) -- ($(2,1.6) + (0,-0.7*\c)$) -- ($(4,0) + (-1.5*\c,\b)$) -- cycle
($(2,1.6) + (1.5*\c,-\b)$) -- ($(6,1.6) +(-1.5*\c,-\b)$) -- ($(4,0) +(0,0.7*\c)$) -- cycle
($(4,0) +(1.5*\c,\b)$) -- ($(6,1.6) +(0,-0.7*\c)$) -- ($(8,0) +(-1.5*\c,\b)$) -- cycle
($(6,1.6) + (1.5*\c,-\b)$) -- ($(8,0) +(0,0.7*\c)$) -- ($(10,1.6) +(-1.4*\c,-\b)$) -- cycle
($(8,0) +(1.5*\c,\b)$) -- ($(10,1.6) +(0,-0.7*\c)$) -- ($(12,0) +(-1.5*\c,\b)$) -- cycle
($(12,0) + (-\b,\c)$) -- ($(12,1.6) + (-\b,-\b)$) -- ($(10,1.6) + (1.4*\c,-\b)$) -- cycle
;
\end{tikzpicture}


\end{document}

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2466
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Eine mögliche Zusammenfassung der gezeichneten Dreiecke:
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}% lädt tikz, xcolor, graphicx, ...
\usepackage{tikz-dimline}

\pgfplotsset{compat=1.15}% aktuell ist derzeit 1.16
\show\b

\begin{document}
\begin{tikzpicture}[
    pencildraw/.style={
        gray!75, 
        decorate, 
        decoration={
            random steps,
            segment length=2pt,
            amplitude=0.4pt
        }
    }
]
\def \b {0.1}
\def \c {0.2}
\draw [pencildraw, fill=lightgray!50] 
    ($(0,0) + (-\b,-\b)$) rectangle ($(12,1.6) + (\b,\b)$)
;
\draw [pencildraw, fill=white]
    ($(0,0) + (\b,\c)$) -- ($(0,1.6) + (\b,-\b)$) -- 
    ($(2,1.6) + (-1.4*\c,-\b)$) -- cycle
    ($(12,0) + (-\b,\c)$) -- ($(12,1.6) + (-\b,-\b)$) -- 
    ($(10,1.6) + (1.4*\c,-\b)$) -- cycle
;
\foreach \x in {0,2,...,8}{
    \pgfmathtruncatemacro{\upOrDown}{mod(\x,4)}
    \ifnum\upOrDown=0\relax
        \draw [pencildraw, fill=white]
            ($(\x,0) + (1.5*\c,\b)$) -- ($(\x+2,1.6) + (0,-0.7*\c)$) -- 
            ($(\x+4,0) + (-1.5*\c,\b)$) -- cycle
        ;
    \else
        \draw [pencildraw, fill=white]
            ($(\x,1.6) + (1.5*\c,-\b)$) -- ($(\x+2,0) +(0,0.7*\c)$) -- 
            ($(\x+4,1.6) +(-1.5*\c,-\b)$) -- cycle
        ;
    \fi
}
\end{tikzpicture}
\end{document}
Die TikZ-Bibliothek decorations.pathmorphing wird offenbar von pgfplots und tikz-dimline geladen.

Man kann die Berechnung für die Fallunterscheidung auch als
\pgfmathsetmacro{\upOrDown}{int(mod(\x,4))}
schreiben.

Antworten