Ich habe einen Polar-Plot in zwei Dimensionen:

Open in writeLaTeX
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{polar}
\begin{document}
\begin{tikzpicture}
  \begin{polaraxis}[
      domain = -3600:3600,
      samples = 4000
    ]
    \addplot[blue!50!black] {1 - sin(50*x/49) - sin(8*x)};
  \end{polaraxis}
\end{tikzpicture}
\end{document}

Polar-Plot in 2d

Man sieht nicht die Umdrehungen um den Nullpunkt in nur zwei Dimensionen, denn der Plot ist nur modulo 360 Grad. Daher möchte ich die Grafik gern dreidimensional darstellen, so dass ich in der Höhe die Entwicklung des Plots mit wachsendem Winkel sehe. Wie kann man das machen?

gefragt 31 Jul '14, 08:38

stefan's gravatar image

stefan ♦♦
5.7k11733
Akzeptiert: 30%

Die Frage ist zum Archivieren gedacht, kein Support benötigt. Antworten sind jedoch sehr willkommen! Ich werde selbst einen Lösungs-Vorschlag als Antwort schreiben.

(31 Jul '14, 08:38) stefan ♦♦

Man kann x einen Umlauf nur achen lassen, also etwa von -180 bis 180, und lässt einen weiteren Parameter y schrittweise wandern. Man addiert dann y*360 zum Winkelargument, beispielsweise mit y=0, 1, 2, ... und lässt dadurch den resultierenden Winkel das entsprechende größere Intervall durchlaufen.

  • Statt polaraxis verwendet man eine normale axis-Umgebung
  • \addplot3 statt \addplot, parametrisiert in x und y statt als Funktion, y wächst in der dritten Dimension
  • y in einem passenden Bereich mit einer sample-Zahl vorgeben
  • die Option data cs=polar erlaubt polare Angabe von Koordinaten auch im Dreidimensionalen
  • ein Surface-Plot lässt sich gut ansehen, z buffer = sort ist für verdeckte Linien sinnvoll

Hier eine Umsetzung, mit der man nun sehen kann, wie die Kurve sich mit wachsendem Winkel entwickelt:

Open in writeLaTeX
\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[
      domain    = -180:180,
      y domain  = -19:19,
      samples y = 39,
      samples   = 100,
      z buffer  = sort,
      colormap/cool,
      grid
    ]
    \addplot3[data cs = polar, surf]
      ( {x}, {1 - sin(50*(x+360*y)/49) - sin(8*(x+360*y))}, {y} );
    \end{axis}
\end{tikzpicture}
\end{document}

Polar-Plot in 3d

Permanenter link

beantwortet 31 Jul '14, 09:01

stefan's gravatar image

stefan ♦♦
5.7k11733

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×464
×148
×107
×17
×1

Frage gestellt: 31 Jul '14, 08:38

Frage wurde angeschaut: 3,397 Mal

Zuletzt aktualisiert: 31 Jul '14, 09:01