Fläche mit Raster füllen - TikZ Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


Richard

Fläche mit Raster füllen - TikZ

Beitrag von Richard »

Hallo zusammen,

Ich würde gerne eine Trapezförmige Fläche mit einem Raster füllen. Dabei könnte ich auch ein Rechteck machen und das überstehende überzeichnen.

Mein Minimalbeispiel:
\documentclass{scrbook}
\usepackage{tikz}	
\begin{document}
	\begin{tikzpicture}
	
	\draw[fill=black] (-0.5,7.5) -- (1.5,7.5) -- (1.5,6) -- (1,5.5) -- (0,5.5) -- (-0.5,6) -- (-0.5,7.5);
	\draw[fill=white] (-0.2,7.2) -- (1.2,7.2) -- (1.2,6.2) -- (0.8,5.8) -- (0.2,5.8) -- (-0.2,6.2) -- (-0.2,7.2);
	
	\draw [help lines, step=0.1cm] (-0.2,5.8) grid (1.2,7.2);
	\end{tikzpicture}
\end{document}
Dadurch das ich das innere erneut mit Weiß überzeichne, kann ich aber das Gitter nicht mehr überzeichnen.
Entweder müsste ich wirklich nur die schwarze Fläche füllen, dazu habe ich aber nix gefunden. :?
Oder ich muss das Gitter an meine Form anpassen, dazu habe ich auch nix gefunden. :?

Ich hoffe ihr habt eine Idee. :wink:
Danke euch,
Richard

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

Beitrag von Bartman »

Vermutlich gibt es elegantere Lösungen als meine, aber der folgende Vorschlag dürfte funktionieren:
\documentclass[tikz, border=2pt]{standalone}
\begin{document}
\begin{tikzpicture}
	\fill (-0.5,7.5) -- (1.5,7.5) -- (1.5,6) -- (1,5.5) -- (0,5.5) -- (-0.5,6) -- (-0.5,7.5);
	\fill[white] (-0.2,7.2) -- (1.2,7.2) -- (1.2,6.2) -- (0.8,5.8) -- (0.2,5.8) -- (-0.2,6.2) -- (-0.2,7.2);
	\clip (-0.2,7.2) -- (1.2,7.2) -- (1.2,6.2) -- (0.8,5.8) -- (0.2,5.8) -- (-0.2,6.2) -- (-0.2,7.2);
	\draw [help lines, step=0.1cm] (-0.2,5.8) grid (1.2,7.2);
\end{tikzpicture}
\end{document}

Richard

Beitrag von Richard »

Vielen dank!
Das funktioniert soweit.

Habe das ganze noch ein eine Scope Umgebung gepackt, da ich ansonsten danach nicht weiter zeichnen konnte.

Nur ist mir noch nicht ganz klar was dieses Clip eigentlich gewirkt?


Grüße
Richard

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

Beitrag von esdd »

Du kannst auch path picture nutzen, um die Fläche zu füllen:
\documentclass{scrbook}
\usepackage{tikz}   
\begin{document}
\begin{tikzpicture}
   \draw[line width=3mm]
   	[path picture={\draw [help lines, step=0.1cm] (current path bounding box.south west) grid (current path bounding box.north east);}]
    (-0.2,7.2) -- (1.2,7.2) -- (1.2,6.2) -- (0.8,5. -- (0.2,5. -- (-0.2,6.2) -- cycle;
\end{tikzpicture}
\end{document}
\clip schränkt den Zeichenbereich für den Rest der aktuellen scope auf den angegebenen Bereich ein. Alles was außerhalb davon liegt, wird weggeschnitten.

Antworten