Orientación en 3D

El trabajo en 2D es simple:

Pero en modo 3D, (PERSPECTIVA) las cosas son más complicadas:

De cualquier modo, hay más. BALANCEO puede cambiar también RUMBO. CABECEO puede también cambiar BALANCEO. Y así sucesivamente. Todos actúan interactivamente unos con otros. La manera más fácil de entenderlo es con un ejemplo:

PERSPECTIVA
GIRADERECHA 90
(MUESTRA REDONDEA BALANCEO REDONDEA CABECEO REDONDEA RUMBO)
0 0 90
BORRAPANTALLA
BAJANARIZ 90
BALANCEADERECHA 90
CABECEA 90
(MUESTRA REDONDEA BALANCEO REDONDEA CABECEO REDONDEA RUMBO)
0 0 90

Este ejemplo sólo usa balanceos y cabeceos pero el rumbo cambia. Pero también es correcto. Piensa en las maniobras hechas y a donde la tortuga debe estar apuntando.

Pero no te preocupes porque FMSLogo lo hace fácil, sólo necesitas entender algunas reglas básicas para no sentirse perdido en un espacio 3D. Los controles de tortuga BALANCEO, CABECEO y RUMBO cambian unos con otros, pero de una manera segura lo cual es importante entender. Lo más importante es que un cambio en RUMBO (con GIRADERECHA, GIRAIZQUIERDA o PONRUMBO) no cambiará BALANCEO o CABECEO. Esto es, podrás usar mucho tu código 2D en 3D.

Tienes que entender otra cosa. No puedas ejecutas simplemente:

PERSPECTIVA
PONBALANCEO 45
PONCABECEO 45
PONRUMBO 45
(MUESTRA REDONDEA BALANCEO REDONDEA CABECEO REDONDEA RUMBO)
45 45 45

Y esperar estar siempre con una orientación absoluta de 45, 45, 45.

BORRAPANTALLA
GIRADERECHA 45
BALANCEADERECHA 30
CABECEA 30
; Ahora trata de ponerte a 45,45,45 de nuevo
PONBALANCEO 45
PONCABECEO 45
PONRUMBO 45
(MUESTRA REDONDEA BALANCEO REDONDEA CABECEO REDONDEA RUMBO)
248 29 45

Pero no te preocupes; hay una solución simple, llamada PONORIENTACION.

BORRAPANTALLA
GIRADERECHA 45
BALANCEADERECHA 30
CABECEA 30
; Ahora trata de ponerte a 45,45,45 de nuevo
PONORIENTACION [45 45 45]
(MUESTRA REDONDEA BALANCEO REDONDEA CABECEO REDONDEA RUMBO)
45 45 45

PONORIENTACION entiende las interacciones entre BALANCEO, CABECEO y RUMBO. Puedes informarte sobre la ORIENTACION presente usando el procedimiento ORIENTACION.

BORRAPANTALLA
GIRADERECHA 45
MUESTRA ORIENTACION
[0 0 45]
HAZ "almacenada ORIENTACION
GIRADERECHA 90
CABECEA 180
PONORIENTACION :almacenada
MUESTRA ORIENTACION
[0 0 45]

Otro procedimiento que debes conocer acerca de ORIENTACION es HACIAXYZ. HACIAXYZ devuelve una orientación compatible con PONORIENTACION.

PONORIENTACION HACIAXYZ [100 100 0]
MUESTRA ORIENTACION
[0 0 45]
AVANZA DISTANCIAXYZ [100 100 0]
MUESTRA POS3D
[100 100 0]

No necesitas pensar en una ORIENTACION absoluta. Se usa ORIENTACION y PONORIENTACION principalmente para guardar, informar y restaurar la ORIENTACION (como hacía en 2D con RUMBO y PONRUMBO). Y, como te explicó antes, los cambios en el rumbo con GIRADERECHA, GIRAIZQUIERDA y PONRUMBO sólo afectan en 3D lo que afectan en 2D.

Mejor pensar también de la misma manera que en 2D. No te preocupas por tu RUMBO absoluto en 2D, es más frecuente poner un RUMBO relativo. Piensa que estás en un avión y que la tortuga está en la cabina del piloto. Entonces decide donde quieres ir.


SourceForge.net Logo