goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Direktlinks:
Zuletzt aktive Beiträge
Unbeantwortete Beiträge
[Erweitert]

Forenstatistik:
Beiträge: 98880
Top-Poster: Johannes_B (5059)

Wir begrüßen unseren neuesten Benutzer Simona Moses.

Links:


Mit Unterstützung von DANTE e.V.: Deutschsprachige Anwendervereinigung TeX. Danke den Mitgliedern!





Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

PGFplots: Surface-Plots mit Überschneidung

 

Solmath
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.09.2012, 18:38     Titel: PGFplots: Surface-Plots mit Überschneidung
  Antworten mit Zitat      
Hallo zusammen,

weiß jemand ob es möglich ist, dass sich zwei mit "surf" erstellte Ebenen innerhalb eines PGF-Plots überschneiden?

Ich hätte gerne, dass im unteren Beispiel die graue Ebene nicht komplett von der gelben überdeckt wird, sondern dass die graue von der x-Achse bis zur gelben Ebene über liegt.

Es handelt sich um einen Export aus Matlab, wo es auch korrekt dargestellt wird. Die Notlösung wäre ein Export als PDF, was ich aber eigentlich vermeiden möchte.

Viele Grüße,
Thomas

Code • Öffne in Overleaf

\documentclass{minimal}
\usepackage{pgfplots}
\begin{document}
   \begin{tikzpicture}
      \begin{axis}[%
         view={-45}{30},
         scale only axis,
         xmin=10, xmax=30,
         ymin=0, ymax=50,
         zmin=0, zmax=15000,
      ]
      \addplot3[%
         surf,
         opacity=0.5,
         colormap/blackwhite,
      ]
      coordinates{
         (10,0,2000)(10,50,2000)
         
         (30,0,2000)(30,50,2000)
     
};
      \addplot3[%
         surf,
         opacity=0.7,
      ]
      coordinates{
         (10,0,0)(10,50,8000)
         
         (30,0,0)(30,50,14000)
     
};
      \end{axis}
   \end{tikzpicture}%
\end{document}
 

feuersaenger
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 91
Anmeldedatum: 05.10.11
Wohnort: Rheinbach
Version: ---
     Beitrag Verfasst am: 20.09.2012, 21:33     Titel:
  Antworten mit Zitat      
Hallo Thomas,

das kann PGFPlots nicht alleine.

Unterstuetzung fuer derlei ist zunaechst auch nicht geplant.

Eventuell kannst Du fuer solche Aufgaben ein Dritttool zuhilfe nehmen, dass das Berechnen von Schnittgeraden und das uebereinandersortieren uebernimmt.

Wenn Du das aus Matlab importierst, koennte auch das \addplot3 graphics feature eine interessante alternative sein (d.h. Du importierst eine 2d projektion als Bild und pgfplots macht ne 3d Achse drueber - das geht).

Mit liebem Gruss

Christian
Private Nachricht senden Benutzer-Profile anzeigen

Solmath
Forum-Newbie
Forum-Newbie

Beiträge: 2
Anmeldedatum: 21.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.09.2012, 14:12     Titel:
  Antworten mit Zitat      
Hallo Christian,

vielen Dank für die schnelle Antwort, ich dachte mir schon sowas.

Das \addplot3 graphics-Feature sieht in der Tat sehr vielversprechend aus. Allerdings habe ich Probleme bei der Umsetzung.

Ich habe versucht nach der Anleitung mit der Matlab-Funktion aus dem Manual vorzugehen, allerdings erhalte ich kein sinnvolles Ergebnis (siehe Beispiel, das Bild habe ich angehängt).

Außerdem habe ich festgestellt, dass die Punktdichte des Bildes für die Darstellung eine Rolle spielt. Die Grafik sieht mit einem 600dpi-PNG anders aus als mit 400dpi.

Mir ist auch nicht ganz klar, wieso die Koordinaten in der Matlab-Funktion noch mit 72.27/dpi skaliert werden, während im Manual einfach die gemessenen Pixel-Abstände aus GIMP verwendet werden. Für die Berechnung der Transformationsmatrix sollten die Absolutwerte doch egal sein.

Viele Grüße,
Thomas

Code • Öffne in Overleaf

\begin{tikzpicture}
\begin{axis}[
grid=both,minor tick num=1,
xlabel=$x$,ylabel=$y$,
]
\addplot3 graphics[
points={
(10,0,0) => (217.5628,34.6294)
(30,0,0) => (380.1703,92.5959)
(30,51.0352,14236.0599) => (217.5628,283.8103)
(10,51.0352,8728.2982) => (54.9553,174.6525)
}
] {Beispiel.png};
\end{axis}
\end{tikzpicture}
 


Beispiel.png
 Beschreibung:

Download
 Dateiname:  Beispiel.png
 Dateigröße:  120 KB
 Heruntergeladen:  399 mal
Private Nachricht senden Benutzer-Profile anzeigen

feuersaenger
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 91
Anmeldedatum: 05.10.11
Wohnort: Rheinbach
Version: ---
     Beitrag Verfasst am: 21.09.2012, 17:55     Titel:
  Antworten mit Zitat      
Hallo Thomas,

die Punkte im 2d bild sind nicht muessen ein 1:1 mapping zwischen 3d Koordinaten und Bildkoordinaten erlauben. Darum sind die Absolutwerte durchaus wichtig... und die unterscheiden sich je nach Bildaufloesung. Darum muesstest Du beim Wechsel der Aufloesung auch diese Werte aktualisieren.

Beachte auch, dass man nicht einfach "pixel werte" nehmen kann - es muessen "point" werte sein (vermutlich optimalerweise typografische points). Immerhin muss das TeX nachher in der Lage sein, irgendwelche Punkte an Bildkoordinaten zu setzen.

Und da kommt dann auch irgendwo so ein Faktor wie 72 rein.

Verifiziere nochmal, dass Deine Angaben zu "points" genau zu dem Bild passen (mit pt units im gimp, falls Du es manuell machst). Wenn es dann immer noch nicht klappt, kann ich nochmal reingucken...

Mit liebem Gruss

Christian
Private Nachricht senden Benutzer-Profile anzeigen

feuersaenger
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 91
Anmeldedatum: 05.10.11
Wohnort: Rheinbach
Version: ---
     Beitrag Verfasst am: 21.09.2012, 18:20     Titel:
  Antworten mit Zitat      
mit folgendem klappts.

Ich habe gerade etwas debug info in meinen code eingebaut, sodass ich grob erkennen konnte, welche punkte Du gewaehlt hast.

Damit konnte ich dies hier ausmessen. Es sah so aus, als haettest Du zuerst die Puntke gemessen und danach den Weissen Rand des Bildes weggeschnitten.

Code • Öffne in Overleaf

\documentclass[a4paper]{article}

\usepackage{pgfplots}


\pgfplotsset{compat=1.6}


\begin{document}

\begin{tikzpicture}
\begin{axis}[
grid=both,minor tick num=1,
xlabel=$x$,ylabel=$y$,
clip=false,
]
\addplot3 graphics[
points={
(10,0,0) => (163,0)
(30,0,0) => (325,5Cool
(10,51.0352,8728.2982) => (0,140)
(30,51.0352,14236.0599) => (162,249)
}
] {Beispiel.png};
\end{axis}
\end{tikzpicture}

\end{document}
 
Private Nachricht senden Benutzer-Profile anzeigen

Solmath
Forum-Newbie
Forum-Newbie

Beiträge: 2
Anmeldedatum: 21.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.09.2012, 18:43     Titel:
  Antworten mit Zitat      
Hallo Christian,

das Problem war tatsächlich, dass ich dachte "Pixel" und "Points" wären äquivalent. Über GIMP habe ich dann bei Messung in pt beinahe die gleichen Werte erhalten wie Du.

Die ursprünglichen Punkte hatte ich über die Matlab-Funktion aus dem Manual erhalten (pgfplotscsconversion). Damit ist bei der Bestimmung der "weiße Rand" natürlich noch vorhanden. Kann sein, dass ich die manuelle und "automatische" Methode da etwas vermischt habe.

Dank Deiner Anmerkungen funktioniert es jetzt jedenfalls und ich bin mal wieder ziemlich begeistert von dem Paket.

Danke und viele Grüße,
Thomas
Private Nachricht senden Benutzer-Profile anzeigen

feuersaenger
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 91
Anmeldedatum: 05.10.11
Wohnort: Rheinbach
Version: ---
     Beitrag Verfasst am: 21.09.2012, 22:52     Titel:
  Antworten mit Zitat      
Hi Thomas,

freut mich, dass das hilft und danke fuer das Lob!

Ich habe den Thread als anlass genommen, einen neuen switch

Code • Öffne in Overleaf

\addplot3 graphics[ debug=visual, .... ] ....
 

zu machen. Dann sieht man vielleicht auch was mehr.

Mit liebem Gruss

Christian
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de


  Datenschutzerklärung | Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2019 goLaTeX.de