Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Grado en Fı́sica
Curso 2017-18
Escenas realistas en 3D
Práctica 9
Escenas realistas en 3D
VPython (con el módulo visual) es una herramienta para producir escenas realistas con movimiento
en 3D.
El módulo visual utiliza el concepto de ventana de visualización la cual se proyecta sobre la pantalla
(2D).
Las coordenadas x, y, z se miden en las unidades que se deseen. Entonces la visualización se escala
de manera adecuada a la escena.
9.2. Objetos
Se debe dar a cada objeto un nombre (como bola o caja) si deseamos usarlo más adelante en el
programa.
Ejemplo 9.2.1. Dar nombres a los objetos.
1
Universidad de Oviedo Departamento de Fı́sica
color=color.green)
Se puede girar el “mundo” pulsando el botón derecho del ratón en la ventana de VPython que
genera visual y arrastrando sin soltar el botón.
También se puede “ver” la escena desde más cerca o lejos. Para ello se pulsa el botón central del
ratón y se arrastra (en ratones con dos botones se pulsan a la vez los mismos).
Para ello se utiliza display, que crea una figura con los atributos especificados y retorna una variable
figura que luego se puede usar.
escena = display(title="Cubo",
width=600, height=200,
center=(5,0,0), background=(0,1,1))
crea una ventana de 600 por 200 con el tı́tulo “Cubo”, centrada en la posición (5, 0, 0) con un color
de fondo cyan.
9.5. Atributos
Los objetos tienen atributos, propiedades como la posición (bola.pos), el color (bola.col), el radio
(bola.radius) u otros parámetros de tamaño (dependientes del objeto).
Podemos asignar valores de atributos a los objetos cuando se crean mediante su constructor (como
en el ejemplo anterior) y se pueden modificar más adelante: bola.radius = 10. Al cambiar el
atributo de un objeto, visual cambia automáticamente la presentación del mismo.
Además del conjunto de atributos que existen al crear un objeto, se pueden crear nuevos atributos.
Si se crea una esfera denominada marte, aparte de su radio, color y localización se pueden crear
otros atributos como marte.masa, marte.velocidad, etc.
Esto sirve para que los programas que usen visual tengan una enfoque orientado a objetos y
facilitan el uso y lectura del código.
Se pueden crear magnitudes vectoriales 3D y realizar operaciones con ellas (por ejemplo asignar una
posición).
Para crear un vector: a = vector(cx, cy, cz), siendo cx, su componente x, etc. Para acceder a
las componentes se usa a.x, a.y, a.z.
Asimismo, se puede usar un vector para usarlo como posición, como en el ejemplo anterior:
bola=sphere(pos=vector(4,7,3),
radius=5,color=color.green)
Se pueden dibujar otros objetos como cilindros (cylinder), conos (cone), flechas (arrow), etiquetas
de texto (label), curvas (curve), etc.
El hierro α forma cristales cúbicos centrados en el cuerpo de 28.8 nm. Realice una representación
gráfica de una celda de hierro α, suponiendo que el radio de cada átomo es de 4 nm (el real, de
0.14 nm es demasiado pequeño en la visualización).
Ejercicio 9.9.1. El cristal de NaCl (sal común) tiene una estructura cúbica centrada en las caras
(búsquese la forma del cristal en Internet).
La constante de la red (lado del cubo) es a = 564 pm. El radio del ión sodio es rNa+ = 116 pm y
el radio del ión cloruro es rCl− = 167 pm.
Dibuje una celda del cristal de NaCl, con los iones sodio de color naranja y los iones cloruro de color
azul.