I Kraft Druckfelder für verschiedene Funktionen und x und y im Bereich wie für f
in dem folgende fast minimal Beispiel:Read-Zugriff gnuplot Beispieleinstellungen für die weitere Berechnung
f(x,y) = -x*y
unset key
set xrange [-2:2]
set yrange [-1:1]
set samples 40
set isosamples 20
delta = 2.0/41
ds(x,y) = sqrt(1.0+f(x,y)**2)
plot "++" using ($1):($2):(delta/ds($1,$2)):(delta*f($1,$2)/ds($1,$2)) with vectors
Wie kann ich bei der Berechnung der delta
verwenden die aktuellen Werte der internen Einstellungen wie samples
und isosamples
und x- und y-Bereiche, um die Längen der kleinen Pfeile an ihre gegenseitigen Abstände anzupassen, so dass Pfeile gut sichtbar sind, aber nicht überlappen?
Hintergrund ist, dass ich den obigen Code in zwei Dateien teilen möchte, die erste zu definieren f und die Bereich und Beispieleinstellungen und dann load
den Rest. Der Rest als kann wieder verwendet werden, um Kraftfelder für viele Funktionen zu zeichnen.
Es wäre möglich, den Lesezugriff auf Gnuplot-Einstellungen zu umgehen, indem Sie Variablen definieren und dann xrange und yrange usw. entsprechend diesen setzen. Ich würde jedoch bevorzugen, den gnuplot eingebauten set
Befehl zu verwenden, wenn das möglich ist.
Ich weiß, dass es Variablen GPVAL_X_MIN
, GPVAL_X_MAX
, GPVAL_Y_MIN
und GPVAL_Y_MAX
nach dem ersten Mal, Grundstück aufgerufen. Es wäre vorzuziehen, keine Kurve zu benötigen und nur die Einstellung aus den vorhergehenden set xrange
und set yrange
zu lesen.
Und gibt es eine gnuplot-definierte Variable für Samples und Isosamples? Gibt es etwas wie GPVAL_SAMPLES
und GPVAL_ISOSAMPLES
?
Nein, diese Variablen existieren nicht, aber Sie können sie selbst definieren: 'SAMPLES = 20; Setze Beispiele SAMPLES' ... BTW, mit 'show variables GPVAL' siehst du alle Variablen die mit" GPVAL "beginnen – Christoph