Hallo,

vor geraumer Zeit wurde in der TexWelt eine Lösung zum Plotten von Elastizitätsmodulkörpern (mit tikz-3dplot) vorgestellt. Das Ergebnis sowie dessen Umsetzung sind hier zu finden: Anisotropie Einkristall mit tikz

An dieser Stelle möchte ich noch eine Frage nachschieben. Welche Möglichkeiten der Farbdarstellungen gibt es für diesen Plot? Sind monochromatische Farbabstufungen möglich? Wo und wie kann ich das einstellen?

Viele Grüße Dirk

gefragt 16 Nov '14, 09:37

Dirk's gravatar image

Dirk
2654610
Akzeptiert-Rate: 40%

bearbeitet 16 Nov '14, 13:58

cgnieder's gravatar image

cgnieder
22.1k253463


So wie ich das sehe ist parametricfill das einzige was tikz-3dplot unterstützt. Allerdings kann man die Funktion auch mit pgfplots plotten. Dort hat man Zugriff auf unzählige Colormaps. Eine monochromatische Colormap ist zum Beispiel viridis (die Standardcolormap von Python matplotlib).

Benutzt man eine neuere Version von pgfplots, so kann die Funktion auch in Lua ausgewertet werden. Das beschleunigt das Setzen immens! Dazu ruft man einfach lualatex test.tex statt pdflatex test.tex auf.

Open in Online-Editor
\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{colormaps}
\pgfplotsset{
  compat=1.13,
  /pgf/declare function={
    surface(\theta,\phi)=1/(7.74-1.8*(1-cos(2*\theta))*((1+cos(2*\theta))+0.25*(1-cos(2*\theta))*(1-0.5*(1+cos(4*\phi)))));
  }
}
\begin{document}
\begin{tikzpicture}
  \begin{axis}
    [
      width=6cm,height=6cm,
      axis equal,enlargelimits=false,
      domain=0:180,samples=35,
      y domain=0:360,samples y=35,
      colormap/viridis,colorbar,
    ]
    \addplot3
      [
        surf,opacity=0.7,
        z buffer=sort,
        faceted color=black,
        point meta={abs(sqrt(x^2+y^2+z^2))}
      ] (
        {sin(x)*cos(y)*surface(x,y)},
        {sin(x)*sin(y)*surface(x,y)},
        {cos(x)*surface(x,y)}
      );
  \end{axis}
\end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 06 Jul '16, 18:04

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

bearbeitet 07 Jul '16, 12:06

1

@Dirk Hilft dir das?

(07 Jul '16, 12:05) Henri

Interessante und sehr schöne Umsetzung. Farbspielereien sollten nun keine Grenzen gesetzt sein. Problematisch erscheint allerdings die Darstellung eines Koordinatensystems, das im Zentrum des Körpers seinen Ursprung hat (analog der Darstellung in der Lösung des ursprünglichen Problems unter http://texwelt.de/wissen/fragen/2454/anisotropie-einkristall-mit-tikz). Die Achsen sind dann im Körper 'unsichtbar' (wenn keine Transparenz verwendet wird) und treten erst beim Austritt aus dem Körper in Erscheinung.

(08 Jan '17, 14:12) Kurt
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×731
×48
×27
×13

gestellte Frage: 16 Nov '14, 09:37

Frage wurde gesehen: 11,631 Mal

zuletzt geändert: 08 Jan '17, 14:12