Anzeige:
Ergebnis 1 bis 11 von 11

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

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registrierter Benutzer
    Registriert seit
    08.02.2012
    Beiträge
    48

    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 08:26 Uhr)

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.859
    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
    48
    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.859
    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!

  5. #5
    Registrierter Benutzer
    Registriert seit
    08.02.2012
    Beiträge
    48
    O.K.
    verstanden. Vielen Dank.

    Noch eine letzte Frage:
    Ich möchte die z-Achse erst ab 0 einzeichnen lassen.
    Der Befehl

    zmin=0,

    zerstört aber das ganze Bild, während der entsprechende Befehl für xmin und ymin prima funktioniert. Woran liegt das?

  6. #6
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.859
    Zitat Zitat von msthab Beitrag anzeigen
    Ich möchte die z-Achse erst ab 0 einzeichnen lassen.
    Der Befehl

    zmin=0,

    zerstört aber das ganze Bild, während der entsprechende Befehl für xmin und ymin prima funktioniert. Woran liegt das?
    Bildest Du bei Deiner Funktion z nicht als -1/x mit positiven Werten für x (0,2 bis 1,7) ab? Wie soll z da Null oder gar positiv werden?

    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
  •