2010-09-03 37 views
9

Estoy tratando de aprender sobre los gráficos 3D, pero tengo problemas para visualizar los vectores 3D involucrados.Gráficos 3D: software para visualizar vectores 3D?

¿Hay algún buen software que puedo utilizar para visualizar los vectores 3D?

Por ejemplo, ahora mismo estoy aprendiendo acerca de las transformaciones de la cámara, y sería bueno si pudiera fácilmente trazar los vectores derecha/arriba/mirada/de los ojos.

He intentado Grapher.app y gnuplot, pero es muy difícil ingresar puntos en Grapher.app y gnuplot no parece ser capaz de bloquear la relación de aspecto.

Respuesta

8

Visual Python es una biblioteca muy fácil para la visualización 3D.

Por ejemplo, para mostrar una esfera y la flecha:

import time, math, visual 

ball = visual.sphere(pos=(0,2,0), radius=1, color=visual.color.red) 
vect = visual.arrow(pos=(2,0,0), axis=(2 ,2,-2)) 

visual.scene.forward = (.1, -.3, -1) # controls the camera view angle 

alt text

Esta ventana ahora también tiene toda la interactividad de ratón normal, tales como el zoom y rotación de la cámara (es decir, el ángulo de visión).

VPython también es fácil de animar. Por ejemplo, lo siguiente rotará la flecha:

da = 2*math.pi/100 
for timestep in range(100): 
    angle = timestep*da 
    vect.axis = (2+2*math.sin(angle), 2*math.cos(angle), -2) 
    time.sleep(.1) 
+0

Impresionante: se ve muy bien. Muchas gracias. –

+0

Si tengo más problemas, abriré nuevas preguntas para ellos ... Pero solo ejecutando exactamente lo que tienes allí, no obtengo ningún tipo de interactividad con el mouse. ¿Hay alguna salsa secreta que me falta? –

+0

Estoy usando VPython desde Ubuntu Linux, y allí el botón central del mouse se acerca y el botón derecho del mouse gira (y no hice nada especial para obtener esto). ¿Dices que no entiendes nada de esto? Es posible que desee intentar establecer: visual.scene.autoscale = 0, visual.scene.userzoom = 1 y visual.scene.userspin = 1, pero creo que el valor predeterminado es permitir la interacción, por lo que esto no debería ser necesario. – tom10

2

No sé si esto sería más fácil que Grapher.app o gnuplot, pero usted podría escribir su propio programa de gráficos 3D que simplemente representa los vectores.

Here's an example in OpenGL que señala a la X, Y, y vectores de eje Z.

Actualización:Here's a Java applet específicamente enfocado en ayudarte a visualizar los vectores en las transformaciones de la cámara. Tenga en cuenta las instrucciones de instalación: debe instalar Java 3D.

Descripción: El applet perspectiva de la cámara Parámetros pretende familiarizar estudiantes con los diversos parámetros asociado con un sintético, cámara de perspectiva-proyección. Los usuarios pueden ajustar cualquiera de los siguientes parámetros : ancho del campo de visión, altura del campo de visión, cerca del recorte distancia de plano, plano de recorte distancia, vector ascendente y vector de la mirada. El tronco de visualización se visualiza en una ventana , permitiendo a los estudiantes a entender cómo se relacionan los parámetros a la forma del tronco de cono de visión.

El mismo sitio tiene many components, such as axes, que se puede utilizar para configurar un simple applet que muestra sólo los vectores que desea.

+0

Hhmm ... No había considerado eso (estoy tratando con gráficos 3D no interactivos), pero no es una mala idea. Gracias. –

+0

@Jay, ¿con quién estabas hablando? – LarsH

+0

@David Wolever, si creas una aplicación y la abren, estoy seguro de que también sería útil para otros. –