PERSPECTIVA

Sinopsis
PERSPECTIVA
PERSPECTIVE
Descripción

Hace que la tortuga entra en el modo «perspectiva». De ahora en adelante, habrá una tercera dimensión (eje Z) donde puede vivir la tortuga. Perspectiva es un término que describe cómo se representa una realidad en 3 dimensiones en una superficie de 2 dimensiones. Debe conocer como dibujar usando FMSLogo en 2D antes de pasar al modo 3D.

Puedes salirte de este modo por entrar en uno modo 2D: MODOVUELTA, MODOVENTANA o MODOJAULA.

Todo lo referente a 2D puede aplicarse a 3D (modo perspectiva). Por ejemplo, si tienes un procedimiento que dibuja una estrella en 2D, con el mismo código puedes colocar una estrella sobre las seis caras de un cubo, colocando a la tortuga en la orientación y en las coordenadas correctas en 3D, antes de ejecutar el código 2D que dibuja una estrella.

En 3D, manejas la tortuga como si fuese un avión. Los aviones tienen tres controles para moverse en un espacio en 3D. Hay timones de profundidad en la cola (cabeceo), un timón de dirección en la aleta (rumbo) y alerones en las alas (balanceo). En modos 2D, FMSLogo te ofrece una especie de timón de dirección para girar la tortuga hacia la derecha e izquierda. En 3D, cuentas con mandos adicionales, como alerones (BALANCEADERECHA y BALANCEAIZQUIERDA) y timones de profundidad (CABECEA y BAJANARIZ). Ahora cuentas con un infinito número de aviones (geométricos, claro) para volar en cada uno con cualquier orientación. Una vez que la tortuga se encuentra en el plano deseado, te puedes usar los famosos comandos de 2D (AVANZA, RETROCEDE, GIRAIZQUIERDA y GIRADERECHA).

Cuando comiences en (X=0, Y=0, Z=0), el eje +Y todavía permanece como arriba en la pantalla y el eje +X está a la derecha de la pantalla. Pero ahora puedes sumirte en la pantalla (lejos de ti) o surgirte de la pantalla (cerca de ti). ¿Cómo? De la misma forma en que vuela un avión. Cuando un avión balancea a la derecha no cambia su trayectoria, y tampoco lo hace la tortuga. Pero si balanceases 90 grados a la derecha y entonces tomases un giro a la derecha, imagínate lo que pasaría. Te bajarías en picado muy, muy rápido. Piensas en una tortuga de verdad en el suelo. Ahora hazla balancear hacia su lado derecho. Ahora, si la tortuga gira hacia su pata delantera derecha (como siempre lo hace), su nariz estará apuntando al suelo. Ahora AVANZA moverá la tortuga hacia abajo en el eje Z (lejos de ti).

Para más información sobre cómo maniobrar en 3D, leas la sección titulada Orientación en 3D.

Hay un simple ejemplo de introducción llamado 3DSTEPS.LGO en el directorio Examples. Cargalo, ejecutalo y entiéndelo antes de seguir adelante.

Aquí tiene un resumen de la relación entre los comandos en modo 2D y modo 3D. Muchos comandos diseñado por modos 2D se repiten en ambas columnas porque les ha afectado estar en el modo 3D.

Comando 2DComando 3D
PONXYPONXY (no cambia la coordenada z)
 PONXYZ
PONX (no cambia la coordenada y)PONX (no cambia ni la coordenada y ni la coordenada z)
PONY (no cambia la coordenada x)PONY (no cambia ni la coordenada x ni la coordenada z)
 PONZ (no cambia ni la coordenada x ni la coordenada y)
COORXCOORX
COORYCOORY
 COORZ
POSPOS (ignora la coordenada z)
 POS3D
PONPOSPONPOS (no cambia la coordenada z)
 POSICIONATE
HACIAHACIA
 HACIAXYZ
DISTANCIADISTANCIA
 DISTANCIAXYZ
RUMBORUMBO
 BALANCEO
 CABECEO
 ORIENTACION
PONRUMBOPONRUMBO
 PONBALANCEO
 PONCABECEO
 PONORIENTACION
GIRADERECHAGIRADERECHA (en el plano actual)
 BALANCEADERECHA
 CABECEA
GIRAIZQUIERDAGIRAIZQUIERDA (en el plano actual)
 BALANCEAIZQUIERDA
 BAJANARIZ
MODOVENTANAPERSPECTIVA
MODOVUELTA 
MODOJAULA 
ACTIVA (índices no negativos)ACTIVA (índices no negativos)
 ACTIVA -1 (la posición del ojo)
 ACTIVA -2 (la posición donde el ojo mira)
 ACTIVA -3 (la posición del fuente de luz)
 EMPIEZAPOLIGONO
 TERMINAPOLIGONO
 MUESTRAPOLIGONO
 LUZ
 PONLUZ
ARCOELIPSEARCOELIPSE (bueno para los esferas)

Limitaciones del modo perspectiva.  Hay varios comandos que trabajan en 3D pero que aun así se comportarán como si fuese en 2D. Sus acciones tienen lugar en la correcta coordenada X, Y, Z, pero la orientación es limitada a un plano 2D. Por ejemplo, no puedes dibujar texto con ROTULO en los 6 lados de un cubo. Pero si en los 8 vértices del cubo, cada etiqueta puede ser correctamente situada en cada vértice utilizando maniobras 3D. No hay nada que te impida construir tu propia biblioteca de procedimientos que dibujan cada letra del alfabeto mediante maniobras 3D.

Los comandos siguientes retienen su 2D comportamiento, aún en modo perspectiva.

  • ROTULO

  • CORTAAREA

  • BITPEGA

  • COPIAAREA

  • RECTANGULORELLENO

  • RELLENA

  • PIXEL

  • PONPIXEL

El modo perspectiva no realiza eliminaciones de líneas ocultas. La eliminación de líneas ocultas requiere que los objetos se compongan de polígonos.

El modo perspectiva no le permite mover dinámicamente la perspectiva visual. Esto es debido a que FMSLogo no almacena tu objeto (tus vectores) en 3D; lo almacena en un mapa 2D de bits. Sin embargo, puedes hacer manipulaciones dinámicas «rápidas» de otras dos maneras.

La primera manera de hacer manipulaciones dinámicas «rápidas» requiere que mantengas tu escena muy simple (en lo que concierne a la actuación de tu computadora). Simplemente despeja la pantalla y cambia la perspectiva visual (tortuga -1) o el emplazamiento de los objetos y dibujalos de nuevo. Fíjate en que los objetos curvados (como aquellos basados en ARCOELIPSE) generan muchos vectores.

La otra manera de hacer manipulaciones dinámicas «rápidas» es grabar cada «escena» en un mapa de bits y reproducirlas de nuevo a una velocidad deseada. Esto es el método que demuestra el ejemplo GROW.LGO. No importa que estés «grabando» escenas 2D o 3D, da lo mismo. Esto vendrá delimitado por la cantidad de memoria de la que disponga tu computadora.

Ejemplo
PERSPECTIVA
REPITE 72 [ARCOELIPSE 90 100 150 45 BALANCEADERECHA 5]

SourceForge.net Logo