PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TikZ - transparente Füllung mit Verlauf unter Schlangenlinie



C3rb3rus
15-06-2016, 20:18
Hallo zusammen,

nachdem ich den Nachmittag mit dem TikZ Handbuch nach einer Lösung durchforstet habe bin ich etwas gefrustet und hoffe mir könnte bitte jemand aus dem Forum die Logik hinter TikZ und dem Befehl \filldraw erklären.
Was ich machen möchte:
Ein Quadrat, dessen "Oberseite" aus einer geschlängelten Linie besteht (snake alternative "random steps") - die restlichen Seitenlinien sollen transparent sein.
Das Quadrat soll einen Farbverlauf (shade) von oben (schwarz) nach unten (weiß) aufweisen und der Hintergrund soll durchscheinen, also die durch das Quadrat markierte Ebene transparent sein.

Mein Problem:
i) Die Füllung endet nicht mit der Schlangenlinie sondern geht darüber hinaus.
ii) Die Transparenz kann ich nicht herstellen.

Muss ich das Objekt irgendwie als solches definieren? ("decoration"?)
Bei mir krankt es offensichtlich an einem fundamentalen Unverständnis... :S

Danke für eure Hilfe...


Anbei mein Minimalbeispiel:


\documentclass[]{article}
%\usepackage[backend=biber]{biblatex}

\usepackage{fp}
\usepackage{tikz}
\usepackage{xcolor}
\usetikzlibrary{positioning,shadings}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{arrows}
\usetikzlibrary{shapes}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{decorations.shapes}
\usetikzlibrary{decorations.text}
\usetikzlibrary{snakes}

\begin{document}
\begin{tikzpicture}


\coordinate (v1) at (0,0) {};
\coordinate (v2) at (5,0) {};

\coordinate (v3) at (0,-5) {};
\coordinate (v4) at (5,-5) {};


\draw[white!0][fill=black!10] (v1) -- (v2) -- (v4) -- (v3);
\draw[snake=bumps, segment length=25pt, gray,thick] (v2) -- (v1);


\end{tikzpicture}
\end{document}

rais
18-06-2016, 11:05
\draw[white!0][fill=black!10] (v1) -- (v2) -- (v4) -- (v3);
\draw[snake=bumps, segment length=25pt, gray,thick] (v2) -- (v1);

so wie ich das sehe, füllst Du erst ein Quadrat und versuchst Dich erst danach an der Schlangenlinie...
ich würde es anders herum versuchen: erst ein Quadrat mit Schlangenlinien erstellen, das dann mit Verlauf füllen und die störenden Schlangenlinien (links, unten, rechts) per \clip abschneiden, etwa


\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary{positioning,shadings}
\usetikzlibrary{shapes}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{decorations.shapes}
\usetikzlibrary{decorations.text}
\usetikzlibrary{snakes}

\begin{document}
\begin{tikzpicture}

\coordinate (v1) at (0,0);
\coordinate (v2) at (5,0);
\coordinate (v3) at (0,-5);
\coordinate (v4) at (5,-5);

\coordinate (v1a) at (-0.04,0);% v?a: Hilfskoordinaten f. Schlangenlinie
\coordinate (v2a) at (5.04,0);
\coordinate (v1b) at (0,0.1);% v?b: Hilfskoordinaten zum Clippen
\coordinate (v2b) at (5,0.1);
\coordinate (v3a) at (-0.04,-5.04);
\coordinate (v4a) at (5.04,-5.04);

\draw[red, thick] (-1,-6) -- (6,1);% zur Demo Transparenz: eine Linie hinter dem Teil

\clip (v1b) -- (v2b) -- (v4) -- (v3) -- cycle;
\draw[snake=bumps, segment length=25pt, blue, thick, top color=black, bottom color=white, opacity=0.75] (v1a) -- (v2a) -- (v4a) -- (v3a) -- cycle;

\end{tikzpicture}
\end{document}

PS) die Farbe der Schlangenlinie hab ich hier nur auf blau geändert, damit man das besser erkennen kann (statt grau gegen grau)

VG