Domanda

Sto creando un simulatore codificato in pitone e in base a ODE (Open Dynamics Engine). Per la visualizzazione ho scelto VTK.

Per ogni oggetto della simulazione, che crea una corrispondente sorgente (ad esempio vtkCubeSource), mappatore e attore. Sono in grado di mostrare gli oggetti in modo corretto e aggiornarli come le simulazioni.

voglio aggiungere assi di avere un punto di riferimento e per indicare la direzione di ciascun asse. Facendo che mi resi conto che, per default, X e Z sono nel piano dello schermo e Y punti verso l'esterno. Nel mio programma ho una convenzione diversa.

Sono stato in grado di assi di visualizzazione in 2 modi:

1) Immagine

axes = vtk.vtkAxes()
axesMapper = vtk.vtkPolyDataMapper()
axesMapper.SetInputConnection(axes.GetOutputPort())
axesActor = vtk.vtkActor()
axesActor.SetMapper(axesMapper)
axesActor.GetProperty().SetLineWidth(4)

2) Immagine (i colori non corrispondono con il primo caso)

axesActor = vtk.vtkAxesActor()
axesActor.AxisLabelsOn()
axesActor.SetShaftTypeToCylinder()
axesActor.SetCylinderRadius(0.05)

Nel secondo, l'utente può impostare molti parametri relativi a modalità di visualizzazione dell'asse. Nella prima, sono riuscito solo per impostare lo spessore della linea, ma nient'altro.

Quindi, le mie domande sono:

  • Qual è il modo corretto di definire e assi di visualizzazione in una scena 3D? Li voglio solo in una posizione fissa e l'orientamento.
  • Come si imposta una convenzione diversa per l'orientamento degli assi, sia per la loro visualizzazione e la visualizzazione generale?
È stato utile?

Soluzione

Beh, se non si scherza con la matrice di trasformazione oggetti per la visualizzazione fini, si potrebbe probabilmente essere sufficiente per appena messo la macchina fotografica in un posizione diversa durante l'utilizzo assi avvicinano 2. I metodi facili da regolare la vostra posizione della fotocamera sono: Pitch (), Azimut () and Roll ()

.

Se si fa confusione con le trasformazioni degli oggetti, quindi applicare la stessa trasformazione per la assi.


Dzenan Zukic gentilmente risposto a questa domanda in vtkusers@vtk.org mail list. http://www.vtk.org/pipermail/vtkusers/2011-November /119990.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top