Ich habe ein Skalarfeld in einer 3D-Domäne (zum Glück kann es in einem strukturierten Raster dargestellt werden). Ein Achsbereich ist jedoch erheblich größer als die anderen beiden.Paraview: Ändern des Seitenverhältnisses von Achsen im Renderfenster
Aus Gründen der Klarheit, meine ‚vts‘ ist Datei in das ein Äquivalent, der folgt:
from pyevtk.hl import gridToVTK
import numpy as np
import random as rnd
# Dimensions
nx, ny, nz = 6, 6, 30
lx, ly, lz = 1.0, 1.0, 10.0
dx, dy, dz = lx/nx, ly/ny, lz/nz
ncells = nx * ny * nz
npoints = (nx + 1) * (ny + 1) * (nz + 1)
# Coordinates
X = np.arange(0, lx + 0.1*dx, dx, dtype='float64')
Y = np.arange(0, ly + 0.1*dy, dy, dtype='float64')
Z = np.arange(0, lz + 0.1*dz, dz, dtype='float64')
x = np.zeros((nx + 1, ny + 1, nz + 1))
y = np.zeros((nx + 1, ny + 1, nz + 1))
z = np.zeros((nx + 1, ny + 1, nz + 1))
# We add some random fluctuation to make the grid
# more interesting
for k in range(nz + 1):
for j in range(ny + 1):
for i in range(nx + 1):
x[i,j,k] = X[i] + (0.5 - rnd.random()*0) * 0.1 * dx * 0
y[i,j,k] = Y[j] + (0.5 - rnd.random()*0) * 0.1 * dy * 0
z[i,j,k] = Z[k] + (0.5 - rnd.random()*0) * 0.1 * dz * 0
# Variables
pressure = np.random.randn(ncells).reshape((nx, ny, nz))
temp = x**2 + y**2 + z**2
gridToVTK("./structured", x, y, z, cellData = {"pressure" : pressure}, pointData = {"temp" : temp})
Wenn ich die erzeugte Datei ‚structured.vts‘ laden in Paraview ich etwas Ähnliches wie die Figur bekommen unten nach dem Umschalten der Darstellung auf Volume.
Wie Sie die Z-Achse sehen kann, ist wesentlich größer als die anderen Achsen. Gibt es eine Möglichkeit, das Seitenverhältnis der Achsen zu ändern, um diese Visualisierung zu verbessern?
EDIT:
den Umfang der Daten zu ändern und die Änderung des Umfangs der Achse entsprechend den Trick (wie durch credondo hingewiesen). Die Frage ist noch offen für einen allgemeineren Ansatz wie das Ändern der Skalierung der gesamten Render-Ansicht. Speziell für den Umgang mit mehreren Objekten, bei denen es mühsam wäre, die Skalierung für jeden von ihnen zu ändern.
Danke. Dies speichert den Datentransformationsschritt, aber Sie müssen auch die Achsenskalierung ändern. Außerdem müssten Sie dies für jedes Objekt in der Pipeline tun. Ich suche nach etwas, das die gesamte Renderansicht skaliert. – pysolver