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

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Tikz Picture, Fläche ausfüllen zwischen den Linien

von Bartman » Fr 26. Apr 2019, 21:54

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.

von heinrich » Fr 26. Apr 2019, 09:16

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}

von esdd » Do 25. Apr 2019, 23:39

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".

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

von heinrich » Do 25. Apr 2019, 22:10

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}

Nach oben