Hallo, ich versuche schon seit einiger Zeit das Spektrum des sichtbaren Lichts in TikZ zu zeichnen. Leider bin ich noch nicht weit gekommen. Mein Problem ist, dass ich auch das Spektrum von verschiedenen Elementen zeichnen möchte (z.B. https://de.wikipedia.org/wiki/Datei:Visible_spectrum_of_hydrogen.jpg) Nun habe ich das colorwav package gefunden, mit dem Wellenlänen in RGB-Werte umgewandelt werden können. nur leider schaffe ich es nicht das spektrum zu zeichnen. Ein einfacher Test dauert beim Kompilieren leider ewig und es kommt kein Ergebnis: Open in Online-Editor
\documentclass{standalone} \usepackage{tikz} \usepackage{colorwav} \usepackage{xcolor} \begin{document} \StoreRGBofWaveLength{\Rval}{\Gval}{\Bval}{700}; \definecolor{leftcol}{rgb}{\Rval, \Gval, \Bval}; \StoreRGBofWaveLength{\Rval}{\Gval}{\Bval}{550}; \definecolor{midcol}{rgb}{\Rval, \Gval, \Bval}; \StoreRGBofWaveLength{\Rval}{\Gval}{\Bval}{400}; \definecolor{rightcol}{rgb}{\Rval, \Gval, \Bval}; \begin{tikzpicture} \draw[left color=leftcol, middle color=midcol, right color=rightcol] (0,0) rectangle (1,1); \end{tikzpicture} \end{document} Es wäre super wenn mir jemand einen Tipp geben könnte, wie ich das Spektrum in Tikz zeichnen kann. Gruß Thomas gefragt 21 Apr '15, 20:10 lustiger_molch |
Zum einen musst Du den Befehl natürlich richtig schreiben, also Hier ist ein Vorschlag für Spektalllinien und das gesamte Lichtspektrum: Open in Online-Editor
\documentclass[margin=5pt,varwidth]{standalone} \usepackage{tikz} \usepackage{colorwav} \usepackage{etoolbox} \renewcommand*{\do}[1]{ \storeRGBofWavelength{\Rval}{\Gval}{\Bval}{#1} \definecolor{wl#1}{rgb}{\Rval, \Gval, \Bval} } \docsvlist{380,400,450,500,550,600,650,700,750,780} \pgfdeclarehorizontalshading{spectrum}{2cm}{ color(0cm)=(wl380); color({0.2cm})=(wl400); color(0.7cm)=(wl450); color(1.2cm)=(wl500); color(1.7cm)=(wl550); color(2.2cm)=(wl600); color(2.7cm)=(wl650); color(3.2cm)=(wl700); color(3.7cm)=(wl750); color(4cm)=(wl780) } \begin{document} \begin{tikzpicture} \fill(3.8,0)rectangle(7.8,2); \foreach[evaluate={\x=\wl/100}]\wl in {400,450,...,750} \draw[line width=1pt,wl\wl] (\x,0)--(\x,2); \end{tikzpicture} \tikz\node[inner sep=0pt]{\pgfuseshading{spectrum}}; \end{document} beantwortet 21 Apr '15, 21:32 esdd Super, vielen Dank für die schnelle und gute Antwort. Ich sollte wohl mal häufiger etwas in LaTeX schreiben, um solche Fehler wie mit dem Semikolon zu vermeiden.
(22 Apr '15, 22:05)
lustiger_molch
|
@lustiger_molch Willkommen in der TeXwelt. In Deinem Code sind ein paar Syntaxfehle.
middle color
hat nur dann eine Auswirkung, wenn es nachright color
undleft color
steht. Allerdings brauchst Du vermutlich sowieso mehr als nur drei Farben.