Zeichnen Sie einen Toroid mit rechteckigem Querschnitt in 3D

542
Fred

Weiß jemand, wie man mit gnuplot in 3D die Oberfläche einer Scheibe XYmit einer bestimmten Dicke plottet und ein kreisförmiges Loch in der Mitte und eine ebene obere und untere Oberfläche hat z(ein Torus, der an der oberen und unteren Oberfläche abgeflacht ist) ).

2

1 Antwort auf die Frage

0
Joce

Da Ihre Form vertikale Tangenten aufweist, kann sie nicht als geschrieben z=f(x,y)und splot <function>nicht verwendet werden. Sie können jedoch Daten aus einer Datei zeichnen, siehe beispielsweise eine Lösung zum Plotten von Cubes: http://www.gnuplotting.org/plotting-cubes/

Um gnuplot zum Erzeugen der Daten selbst zu verwenden, können Sie die Pseudo-Datei "++" und Modifikatoren verwenden. So stellen Sie einen Zylinder dar:

splot [-1:1][-1:1][0:1] '++' u (cos(pi*$1)):(sin(pi*$1)):($2) w lines 

Zum Zeichnen der oberen Oberfläche können Sie denselben Trick verwenden:

replot '++' u ($2*cos(pi*$1)):($2*sin(pi*$1)):1 w lines 

Für Ihre genaue Form sind geringfügige Änderungen erforderlich. Ich empfehle, dass Sie Funktionen für die X- und Y-Koordinatenberechnungen definieren, die sie verwenden GPVAL_X_MINund zusammenstellen können. zur Normalisierung der Variablen $1und $2im relevanten Bereich unabhängig von den Darstellungsbereichen.