Hallo TeXwelt, Wenn ich in einem TikZ-Picture beispielsweise ein Rechteck zeichne, dann kann ich über Befehle wie top, right oder inner und über color= Farbverlauf und Farben explizit einstellen. Wenn ich nun aber das Rechteck drehe, dann beziehen sich diese Einstellungen immer noch auf das ursprüngliche Koordinatensystem. Andererseits, mit dem Befehl shading=axis fehlen mir Einstellmöglichkeiten; ich kann keine Farben mehr variieren. Im TikZ/PGF Manual bin ich zwar fündig geworden, aber ich weiß nicht ob es nötig ist in die pgfpicture-Umgebung mit pgfdeclareverticalshading zu wechseln. Schon mal vielen Dank! Open in Online-Editor
\documentclass[12pt,a4paper]{scrartcl} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{backgrounds} \begin{document} \begin{tikzpicture}[framed] \shadedraw[top color=black!20, bottom color=black!40, middle color=black!70] (0,0) rectangle +(3,2); \shadedraw[top color=black!20, bottom color=black!40, middle color=black!70, rotate=20] (4,0) rectangle +(3,2); \shadedraw[shading=axis, shading angle=10, rotate=10] (8,0) rectangle +(3,2); \end{tikzpicture} \end{document} gefragt 10 Dez '15, 00:31 Fledermaus_man cis |
Wirklich schön ist es nicht, aber hier ist mal ein Vorschlag, bei dem das Rechteck zunächst in einer Box gespeichert und anschließend in einem Node an der gewünschten Stelle ausgegeben wird: Open in Online-Editor
\documentclass[margin=5mm]{standalone} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{backgrounds} \newbox\mybox \newcommand{\tikzBox}[2][\mybox]{% \sbox#1{\pgfinterruptpicture#2\endpgfinterruptpicture}} \begin{document} \begin{tikzpicture}[framed] \shadedraw[top color=orange!20, bottom color=purple!40, middle color=black!70] (0,0) rectangle +(3,2); \tikzBox{% \tikz\shadedraw[top color=orange!20, bottom color=purple!40, middle color=black!70] (0,0) rectangle +(3,2);% } \path[rotate=20,transform shape] (4,0)node[inner sep=0pt,outer sep=0pt,anchor=south west]{\usebox\mybox}; \end{tikzpicture} \end{document} Alternativ könnte man das von @cis erwähnte Open in Online-Editor
\documentclass[margin=40mm]{standalone} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{backgrounds} \newbox\mybox \newcommand{\tikzBox}[2][\mybox]{% \sbox#1{\pgfinterruptpicture#2\endpgfinterruptpicture}} \begin{document} \begin{tikzpicture}[framed] \shadedraw[top color=orange!20, bottom color=purple!40, middle color=black!70] (0,0) rectangle +(3,2); \begin{scope} [transform canvas={rotate=20}] \shadedraw[top color=orange!20, bottom color=purple!40, middle color=black!70] (4,0) rectangle +(3,2)coordinate(c); \node[blue]at(c){X}; \end{scope} \node[red]at(c){X}; \end{tikzpicture} \end{document} beantwortet 11 Dez '15, 13:23 esdd Danke für die beiden Antworten. Ich habe jetzt die transform canvas Variante genommen. Und über Erweiterung rotate around={-30:(1,0)} kann man noch einen Drehpunkt festlegen.
(11 Dez '15, 17:51)
Fledermaus_man
@Fledermaus_man: Ich habe Deine "Antwort" in einen Kommentar umgewandelt. Hier sind Antworten stets "echte" Antworten, keine Gespräche oder Rückfragen oder Zusatzinfos, sondern Lösungen. Ungewohnt und anders als in Webforen, doch innovativ und nutzbarer. Bemerkungen gern wie hier als Kommentare. Inline-Code geht übrigens nicht mit
(11 Dez '15, 18:32)
saputello
|
Es könnte etwas mit
transform canvas
und/odershading angle
zu tu haben, ich bekomme jedoch gerade keine perfekte Lösung damit hin.