tikz pgfplots - 2 addplot3-Befehle ineinander zeichnen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: tikz pgfplots - 2 addplot3-Befehle ineinander zeichnen

Kann keiner helfen?

von TobiBader » Fr 3. Jun 2016, 14:13

Erstmal Danke für das Umgestalten, so ist es besser :)
Aber habt ihr eine Lösung für mein Problem oder vielleicht einen Tipp? Für Hilfe wäre ich wirklich sehr dankbar :)

von Bartman » Mi 25. Mai 2016, 21:07

Ich möchte die folgende Umgestaltung der von Dir veröffentlichten Informationen vorschlagen:

Kontur.tex
\documentclass[12pt]{article}
\usepackage{pgfplots}


\begin{document}

%
%\begin{figure}[!ht]
\begin{tikzpicture}
\begin{axis}[view/h=120,xlabel=$x$,ylabel=$y$]

\addplot3[
opacity=1,
table/row sep=\\,
patch,
patch type=line,
line width=3pt,
color=black,
% vertex count=5,
% patch table with point meta={%
patch table={%
% pt1 pt2 pt3 pt4 pt5 cdata
0 1 \\
1 6 \\
6 5 \\
5 4 \\
4 3 \\
3 2 \\
2 0 \\
0 8 \\
8 6 \\
8 3 \\
1 7 \\
7 4 \\
7 2 \\
}]
table []{
x y z c\\
0 2 0 0 \\%0
2 2 0 0 \\%1
0 1 3 3 \\%2
0 0 3 3 \\%3
1 0 3 3 \\%4
2 0 2 2 \\%5
2 0 0 0 \\%6
1 1 3 10 \\%7
0 0 0 10 \\%8
1 0 3 0 \\%9=4 copy
1 1 2 0 \\%10=7 copy
};

% replicate the vertex list to show \coordindex: 
\addplot3[only marks,nodes near coords=\coordindex]
table[row sep=\\] {
0 2 0\\ 2 2 0\\ 0 1 3\\ 0 0 3\\
1 0 3\\ 2 0 2\\ 2 0 0\\ 1 1 2\\ 0 0 0\\
};

\end{axis}
\end{tikzpicture}
%\end{figure}

\end{document}
Flaeche.tex
\documentclass[12pt]{article}
\usepackage{pgfplots}


\begin{document}

%
%\begin{figure}[!ht]
\begin{tikzpicture}
\begin{axis}[view/h=120,xlabel=$x$,ylabel=$y$]

\addplot3[
opacity=1,
table/row sep=\\,
patch,
% patch type=polygon,
shader=interp,
% line width=1pt,
% vertex count=5,
% patch table with point meta={%
patch table={%
% pt1 pt2 pt3 pt4 pt5 cdata
0 1 7 \\
1 6 5 \\
1 5 4 \\
1 4 7 \\
7 4 2 \\
2 4 3 \\
0 7 2 \\
0 8 1 \\
1 8 6 \\
6 8 5 \\
5 8 4 \\
4 8 3 \\
3 8 2 \\
2 8 0 \\
}]
table [point meta=\thisrow{c}]{
x y z c \\
0 2 0 0 \\%0
2 2 0 0 \\%1
0 1 3 3 \\%2
0 0 3 3 \\%3
1 0 3 3 \\%4
2 0 2 2 \\%5
2 0 0 0 \\%6
1 1 3 10 \\%7
0 0 0 10 \\%8
1 0 3 0 \\%9=4 copy
1 1 2 0 \\%10=7 copy
};

% replicate the vertex list to show \coordindex: 
\addplot3[only marks,nodes near coords=\coordindex]
table[row sep=\\] {
0 2 0\\ 2 2 0\\ 0 1 3\\ 0 0 3\\
1 0 3\\ 2 0 2\\ 2 0 0\\ 1 1 2\\ 0 0 0\\
};

\end{axis}
\end{tikzpicture}
%\end{figure}

\end{document}
Bild
Dateianhänge
kontur und oberflaeche.PNG
kontur und oberflaeche.PNG (97.49 KiB) 1566 mal betrachtet

tikz pgfplots - 2 addplot3-Befehle ineinander zeichnen

von TobiBader » Mi 25. Mai 2016, 19:48

Hallo golatex-Team,
ich bin noch neu in latex und arbeite mit pgfplots in 3D.
Aus einer FEM-Berechnung habe ich eine Ausgangsdatei, welche aus dreieckigen Elementen mit Knotenwerten besteht. Von diesen Dreiecken stelle ich lediglich die Flächen mit der shader=interp dar, aber nicht die Kanten. (das alleine funktioniert :D )
Außerdem habe ich eine Datei mit den Linien der gesamten Außenkonturen, von welchen ich in einem separaten addplot3-Befehl lediglich die sichtbaren Außenkonturen dargestellt haben möchte.

Gibt es eine Möglichkeit (evtl. in der axis-Umgebung) pgfplots mitzuteilen, dass er die beiden addplot3-befehle nicht übereinander zeichnen soll, sondern ineinander ?

Das erwartete Ergebnis wäre dann folgendes:
Er zeichnet deckend die sichtbare, interpolierte Oberfläche des Körpers. Die nicht sichtbaren Kanten aus der Kontur-Datei werden nicht dargestellt, da sie von der Oberfläche verdeckt werden. Die sichtbaren Kanten der Kontur-Datei werden dargestellt, da sie sich genau auf der Verbindung zweier Oberflächen-Elemente befinden.

Als Minimalbeispiel habe ich eine Kontur.tex datei angehängt, bei welcher sich im addplot3-Aufruf die Beispielliste der Kontur-Linien befindet, und eine Flaeche.tex, bei welcher sich im addplot3 die zugehörige Liste der Knotenfarbwerte für die Flächeninterpolation befindet. Die beiden separaten Ergebnisse habe ich in einen Screenshot gepackt - kann man beide Ergebnisse ineinander packen?

Oder kann ich vielleicht die beiden separaten Listen mit ihren individuellen Einstellungen (shader/surf/line whith...) in einem einzigen addplot3-Befehl aufrufen?

Wenn ihr mir helfen könntet wäre ich wirklich sehr dankbar,
Beste Grüße
Tobi
Dateianhänge
Kontur.tex
(884 Bytes) 265-mal heruntergeladen
Flaeche.tex
(951 Bytes) 265-mal heruntergeladen
kontur und oberflaeche.PNG
kontur und oberflaeche.PNG (97.49 KiB) 1590 mal betrachtet

Nach oben