Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Bei pdfplot 3D- Grafik fehlt ein Stück

  1. #1
    Registrierter Benutzer
    Registriert seit
    08.02.2012
    Beiträge
    39

    Bei pdfplot 3D- Grafik fehlt ein Stück

    Hallo,

    ich möchte gerne die Funktion -1/r (in 3D Polarkoordinaten) darstellen.
    In Anlehnung an dem Beispiel auf Seite 141 im PGFPLOT Manual habe ich dazu unten stehen Code geschrieben (Umwandlung x,y im Polarkoordinaten usw).
    Die Grafik wird auch fast richtig dargestellt, aber es fehlt ein Stück (siehe jpg-Files)
    Bei der Fehlersuche ist mir aufgefallen, dass dies auch bei anderen Funktionen, die im negativen z-Bereich liegen passiert (z.B. f(r)=-r). Bei positiven Funktionen tritt der Fehler nicht auf. Hat jemand eine Erklärung?

    Vielen Dank!

    Code:
    \documentclass[10pt,ngerman,a4paper]{article}
    
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[ngerman]{babel}
    \usepackage[a4paper]{geometry}
    \geometry{verbose,tmargin=2cm,bmargin=3cm,lmargin=2cm,rmargin=2cm,footskip=1cm}
    \setlength{\parskip}{\smallskipamount}
    \setlength{\parindent}{0pt}
    \usepackage{units}
    
    
    
    %--------------------------------------------------------------------------------------------------------------
    
    \usepackage{pgfplots}
    \pgfplotsset{compat=1.15}  			% komptibilitätseinstellung
    \usepackage{lmodern} 						% Notwendig fuer gute Schriften (nicht verpixelt)
    
    %------------------------------------------------------------------------------------
    
    \begin{document}
    
    \begin{tikzpicture}
    \begin{axis}[
    %     clip=true,
    	width=20cm,
    	height=20cm,
    	xtick=\empty,
    	ytick=\empty,
    	ztick=\empty,
    %	xlabel={$x$}, ylabel={$y$}, zlabel={$E_{\mathrm{pot}}$},
    	axis lines=center,
    	axis on top,
    %	xmin=-1.8, xmax=2.3,
    %	ymin=-1.8, ymax=2,
    	samples=10,
    	samples y=40,
    	domain=0.2:1.7,		% Ist in Polarkoordinaten eigentlich der Radius 
    	y domain=0:360,  	% Ist in Polarkoordinaten eigentlich der Winkel 
    	enlarge z limits={value=0.7,upper}, % Längere Z-Achse nach oben
    %	z label style={at={(ticklabel* cs:1.01)}, anchor=south, }, %Achsenbeschriftung aussen
    %	x label style={at={(ticklabel* cs:1.01)}, anchor=west, }, %Achsenbeschriftung aussen
    %	y label style={at={(ticklabel* cs:1.01)}, anchor=west, }, %Achsenbeschriftung aussen
    	colormap/blackwhite,
    	]
     \addplot3 [surf] ({x*cos(y)},{x*sin(y)},{-1/x}); % Gibt Problem
     %
     %\addplot3 [surf] ({x*cos(y)},{x*sin(y)},{-x}); % Gibt auch Problem
     % \addplot3 [surf] ({x*cos(y)},{x*sin(y)},{x}); % Gibt kein Problem
    \end{axis}
    \end{tikzpicture} 
    
    \end{document}
    pdfplot Problem - x.jpgpdfplot Problem -1 durch x.jpg
    Geändert von msthab (06-10-2017 um 07:26 Uhr)

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.700
    ergänze mal die Option
    Code:
    z buffer=sort,
    zur axis-Umgebung.

    VG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer
    Registriert seit
    08.02.2012
    Beiträge
    39
    Super! Damit funktioniert's!
    Danke!

    Aber noch eine Frage:

    Ich gebe die Bild-Größe an:
    width=20cm,
    height=20cm,

    Wenn ich eine 2D-Kurve ausgebe wird die Größe ganz genutzt (z. B. mit \addplot {x}
    Im 3D-Modus ist das Bild aber viel kleiner als angegeben.
    Gibt es dafür eine Erklärung?

    Gruß

    Manfred

  4. #4
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.700
    Zitat Zitat von msthab Beitrag anzeigen
    Ich gebe die Bild-Größe an:
    width=20cm,
    height=20cm,

    Wenn ich eine 2D-Kurve ausgebe wird die Größe ganz genutzt (z. B. mit \addplot {x}
    Im 3D-Modus ist das Bild aber viel kleiner als angegeben.
    Gibt es dafür eine Erklärung?
    Die x- (Breite) und y- (Höhe) Komponenten werden für die räumliche Darstellung z. T. in die Darstellungsebene gedreht -- und damit runterskaliert.
    Wenn Du testhalber mal
    Code:
    view={0}{90},
    bei den Optionen zur axis-Umgebung ergänzt, schaust Du quasi auf die Trichteröffnung, die dann auch entsprechend größer dargestellt wird.

    VG
    Rainer
    There's nothing a good whack with a hammer won't fix!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •