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, 12:04

Ross's gravatar image

Ross
355522
Akzeptiert: 86%

bearbeitet 03 Jun '14, 12:05

1

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

(03 Jun '14, 15: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, 16:21) cfeuersaenger

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

(03 Jun '14, 18:01) Ross

@cfeuersaenger schon einen Bug entdeckt?

(07 Jun '14, 06: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, 04:21

Henri's gravatar image

Henri
10.0k31730

bearbeitet 04 Jun '14, 17: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, 17:25) cfeuersaenger
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:

×160
×19

Frage gestellt: 03 Jun '14, 12:04

Frage wurde angeschaut: 3,101 Mal

Zuletzt aktualisiert: 08 Jun '14, 17:25