3
1

Hallo liebe LaTeX-Freunde,

ich hab da mal ein Problem: Ich versuche gerade diverse 3-dim. Mannigfaltigkeiten per pgfplots darzustellen. Wenn ich dabei die Oberflächen mittels surf abbilden möchte, wird an manchen Stellen der Menge leider immer der Teil der Oberfläche abgebildet, welcher aus der betrachteten Perspektive in der hinteren Ebene des Bildes ist, sprich der Teil der Mannigfaltigkeit, der eigentlich nicht zu sehen sein dürfte.

Hier ein Beispiel anhand eines Torus:

Open in writeLaTeX
\documentclass[margin=2mm,tikz]{standalone}
\usepackage{pgfplots}
\begin{document}
%Oberflächenproblem
\begin{tikzpicture}[line width=.7pt]
\begin{axis}[axis equal image,
    clip=false,
    xlabel=\empty, ylabel=\empty, zlabel=\empty,
    axis lines=middle,
    colormap/blackwhite,
    y dir=reverse,
%    axis on top
    ]
    % sym. Torus:
            \addplot3[domain=0:360,y domain=0:360, samples=50,
            surf
            ]
            ({15+(10+4*cos(x))*cos(y)} ,
            {15+(10+4*cos(x))*sin(y)},
            {4+4*sin(x)});
\end{axis}
\end{tikzpicture} 
\end{document}

Die dazu gehörige Grafik:

alt text

Was mache ich falsch?

gefragt 03 Jun '14, 18:04

Ross's gravatar image

Ross
37571522
Akzeptiert-Rate: 100%

bearbeitet 03 Jun '14, 18:05

1

z buffer=sort. Dafür muss leider y dir=reverse entfernt werden.

(03 Jun '14, 21:20) Henri

@Henri das hoert sich stark nach einer Antwort an. Die Einschraenkung, dass es probleme mit y dir=reverse gibt, ist mir neu - ich werde mal sehen, ob/wo da ein bug ist.

(03 Jun '14, 22:21) cfeuersaenger

Jap, würde ich auch als eine solche akzeptieren. Danke!

(04 Jun '14, 00:01) Ross

@cfeuersaenger schon einen Bug entdeckt?

(07 Jun '14, 12:04) Ross

Mit z buffer=sort sollte es funktionieren. Dafür muss leider y dir=reverse entfernt werden (evtl. ein Bug).

Open in writeLaTeX
\documentclass[margin=2mm,tikz]{standalone}
\usepackage{pgfplots}
\begin{document}
%Oberflächenproblem
\begin{tikzpicture}[line width=.7pt]
\begin{axis}[axis equal image,
    clip=false,
    xlabel=\empty, ylabel=\empty, zlabel=\empty,
    axis lines=middle,
    colormap/blackwhite,
    %y dir=reverse,
    %axis on top
    ]
    % sym. Torus:
            \addplot3[domain=0:360,y domain=0:360, samples=50,
            surf,z buffer=sort
            ]
            ({15+(10+4*cos(x))*cos(y)} ,
            {15+(10+4*cos(x))*sin(y)},
            {4+4*sin(x)});
\end{axis}
\end{tikzpicture} 
\end{document}

alt text

Permanenter link

beantwortet 04 Jun '14, 10:21

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

bearbeitet 04 Jun '14, 23:19

Mir scheint, dass der einzige Grund fuer y dir=reverse der war, dass Koordinatensystem zu drehen. Dafuer gibt es den view key. Tatsaechlich scheint view/h=115 genau den gewuenschten Effekt zu haben! Ich muss noch reingucken, warum das mit reversal nicht geht - aber das mit view ist auf jeden Fall richtig. Beachte, dass \pgfplotsset{compat=1.9} hier einen Unterschied bei der bounding box macht.

(08 Jun '14, 23:25) cfeuersaenger
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:

×296
×20

gestellte Frage: 03 Jun '14, 18:04

Frage wurde gesehen: 11,317 Mal

zuletzt geändert: 08 Jun '14, 23:25