Trigonometría, Visión Estereoscópica y Realidad Virtual 3D

Los Ángulos: Hay dos formas de definir “Ángulo”:
  1. Forma geométrica: Se le llama “ángulo” a la amplitud entre dos líneas de cualquier tipo, que concurren en un punto común llamado vértice. Coloquialmente, ángulo es la figura formada por dos líneas con origen común. El ángulo entre dos curvas, es el ángulo que forman sus rectas tangentes en el punto de intersección.
  2. Forma trigonométrica: Es la amplitud de rotación o giro que describe un segmento rectilíneo con respecto a una referencia, en torno de uno de sus extremos tomado como vértice desde una posición inicial hasta una posición final. Si la rotación es en sentido levógiro (contrario a las manecillas del reloj), el ángulo se considera positivo. Si la rotación es en sentido dextrógiro (conforme a las manecillas del reloj), el ángulo se considera negativo.

10156068_10154021077198054_434083119001719418_nLas Funciones Trigonométricas representan las relaciones (una división), ya sea entre los catetos y/o la hipotenusa, dados en un triángulo rectángulo generado por un vector AB.

image010Dependiendo de cuales pareja se quieran relacionar, a partir del uso bien sea de un ángulo (o de una proporción, relación o razón, como se prefiera llamar y según el caso), entre dos de los tres de los lados del triángulo rectángulo.

Siempre es bueno saber si se tienen dos de las cuatro variables, para calcular una tercera, siempre que estemos sobre un triángulo rectángulo:
*Cat. Opuesto.
*Cat. adyacente.
*Hipotenusa o Magnitud.
*Ángulo.

(En caso de no ser un triángulo rectángulo, se debe emplear el “Teorema del Coseno”)

teorema-de-pitagoras

En todo triángulo rectángulo, el cuadrado de la hipotenusa es igual a la suma de los cuadrados de los catetos.” -Pitágoras.
También puede ser interpretado como: “La suma de dos cuadrados dá como resultado otro cuadrado, cuyos catetos serán igual a la raíz cuadrada de la suma de las áreas de los cuadrados iniciales”.
Teorema de Fermat: Con este teorema se pretende entender saber el valor que se necesita adicionar o implementar, para que se puedan sumar dos elementos de más de 2 dimensiones, que si bien elementos de dos dimensiones como lo son los cuadrados se pueden sumar sin problemas, generando un equivalente que es capaz de contener en su área los primeros dos cuadrados, según sabemos por el teorema de pitágoras, elementos como los cubos que poseen tres dimensiones, al momento de sumar los volúmenes de los primeros cubos, estos no van a generar un tercer cubo con las dimensiones de ‘z’ correspondientes según esta fórmula.
teorema-de-fermat

Si n es un número entero mayor que 2, entonces no existen números enteros positivos ‘x’, ‘y’ y ‘z’, tales que se cumpla la igualdad. Para ‘n’ como valor entero positivo mayor que ‘2’.

Dos leyes que se pueden aplicar para todo tipo de Triángulos:

*Ley del Coseno (Teorema de Pitágoras Generalizado / Pitagoras Recargado):

*Ley del Seno:

senoycoseno

Ángulos en el Espacio:

catetos-angulo21.-* Solo hay un “Cateto Opuesto” por cada ángulo de un vector del espacio.
2.-* Los ángulos siempre son paralelos al Cateto Opuesto que le corresponde.

cosenos-directores
http://docencia.udea.edu.co/GeometriaVectorial/uni3/seccion33.html
COSENOS DIRECTORES: Son ángulos que toman como su “Cateto Adyacente” a uno de los Ejes de la Gráfica, mientras toman como “Cateto Opuesto” a la recta formada de manera ortogonal (Ángulo recto ‘90°’) entre lo correspondido por el vector y dicho eje.
Con el fin de calcular los ángulos denominados “Cosenos directores”, que a diferencia de otros ángulos, cambian de planos con cada movimiento o cambio de los angulo del vertice, hacen que para obtener el Cateto Opuesto se requiera de un cálculo de proyecciones complejo y constante, para calcular dicho ángulo, podemos pasar de este cateto, y emplear una función trigonométrica que no lo requiera.

La función ‘coseno’ cumple esta condición, siempre que recordemos que la magnitud del vector es nuestra hipotenusa.
ecu33def312j
Puesto que todos los cosenos tienen el mismo denominador o determinante, al elevar al cuadrado todos los términos del numerador, suman igual que el denominador.

En caso de manejar un ejercicio en el cual requerimos calcular más de un coseno director, es bueno recordar las propiedades para estos ángulos:

REPRESENTACIÓN Y PARTES DE LOS VECTORES:
Los vectores son la representación de un elemento en el espacio, con un conjunto de valores numérico, poseen:
  1. Punto Origen: Coordenadas que representan el punto de referencia o intersección entre los ejes principales de la medición de la posición del vector.
  2. Punto Extremo: Coordenadas que representan el punto donde se culmina el vector.
  3. Dirección, ángulo, pendiente o recta soporte: Es el valor que determina la relación que existe entre cada diferencial entre las componentes de las coordenadas entre el Punto Origen y el Punto Extremo, siendo que ambos puntos se encuentran proyectados sobre dos ejes ortogonales que compartan en común, del cual se tomará su ángulo como una referencia, para poder desarrollar un diferencial entre dicho ángulo de referencia y el ángulo formado por los dos puntos.
  4. Sentido: Se representa como una flecha que identifica y distingue el Punto Origen donde se ubica la cola, del Punto Extremo donde se marca la cabeza de la flecha.
  5. Módulo o Magnitud: Es la longitud o distancia entre el Punto Origen y el Punto Extremo.
    Una magnitud por si sola representa por medio de una superficie esférica, la posibilidad de que dicha magnitud exista en diferentes direcciones y/o sentidos.
SISTEMAS DE COORDENADAS: Ambos sistemas de Coordenadas son equivalentes, se puede partir de uno y hacer la correspondiente transformación al otro, según los datos y el problema a desarrollar.
  1. COORDENADAS POLARES: Se hacen uso del Módulo o Magnitud y su Dirección en Ángulo, para definir los vectores; Es el más común en la vida real.
  2. COORDENADAS CARTESIANAS: Se hacen uso del Punto de Origen, El Punto Extremo, y El Sentido, para representar y definir los vectores; Este sistema es el más intuitivo de manejar al momento de realizar operaciones en el Cálculo.
VECTORES Y MATRICES:
De la misma forma en que al organizar un conjunto de valores numéricos según sus coordenadas o componentes ‘x’, ‘y’ y ‘z’, en la forma de un vector [x y z], nos permite desarrollar esta amplia capacidad de análisis y cálculo en un espacio euclídeo y demás, cuando necesitamos desarrollar operaciones con más de un vector, podemos llevar esta información a una matriz, en donde podremos tener aún más facilidad para desarrollar las mismas operaciones matemáticas, además de desarrollar algunas operaciones que te permitirán llegar a conclusiones de formas más sistemáticas y eficientes.

2bc35de3b5f849d1c0e1c3ecbdf4153b

El manejo de las magnitudes en un vector, es de mucha utilidad, y tienen un equivalente en el campo matricial llamado “determinantes”, que permite obtener nuevas conclusiones en diversos campos de aplicación.

a7d421a2a064ee86c74f6f707ebe52d3 Cuando no disponemos de las coordenadas, sino de las magnitudes de los 2 vectores, así como del ángulo entre estos, se empleará esta fórmula.

determinant_de_vecteur_dim_2
El Área azul, representa el determinante de esta matriz para dos vectores [x x’]
El manejo de los determinantes, permiten no solo manejar valores para un vector, sino para un conjunto de vectores, logrando representar un área o volumen u otro, dependiendo de las dimensiones de la matriz que se está trabajando.
En el mundo matricial, los vectores se van introduciendo en la matriz colocándolos de fila en fila o de columna en columna, siempre que se tenga un orden, y se mantenga dicho orden, el cálculo que se haga te respaldará.

 

 

 

CONSIDERACIONES MATRICIALES: (Próximamente)

*Dimensiones.
*Inversa.
*Gauss.
*Métodos.
*Grupos.
-Lie
-etc…

Operaciones con Vectores y Matrices.

Suma y Resta

  • Las matrices deben de tener las mismas dimensiones para poder operarse.
  • Cada columna representará las unidades que corresponden con la variable en cada posición de la matriz.
  • Cada fila representará la ecuación correspondendiente con el sistema de ecuaciones matricial.

Producto Punto

  • Se hace uso del producto punto entre vectores cuando queremos proyectar un vector sobre otro vector de forma ortogonal.

Producto Cruz (producto cruz como una transformación lineal)

  • El número de columnas de la matriz A tiene que ser igual al número de filas de la matriz B, para poder desarrollar esta operación, siendo el resultado de esta operación una matriz con las dimensiones de la filas de la matriz A y con la cantidad de columnas de la matriz B.
  • El resultado de esta operación sobre vectores A y B, representará un nuevo vector que será ortogonal tanto de A como de B cuya magnitud será igual al área del paralelogramo que se forma entre los dos vectores, cuyo sentido dependerá de la rotación en el espacio que se debe desarrollar para hacer una transformación desde el vector A hasta el vector B, siendo negativo cuando el sentido es horario y positivo cuando este es anti-horario.

Matriz Inversa

  • Estas matrices guardan información sobre las transformaciones que son desarrolladas por parte de la matriz inicial sobre los vectores en un espacio, siendo el producto de la matriz inversa y la matriz original una matriz identidad, la cual representa los ejes unitarios de dicho espacio.
  • Existen condiciones y restricciones.

Ángulos de Euler:

2_3
El Sistema de referencia fijo se puede representar por una magnitud ‘r’ con ángulos y/o componentes en el espacio.

Se puede comparar los ángulos de Euler con una suma de vectores, en la cual el objetivo es obtener las componentes resultantes de un sistema coordenado ubicado sobre un cuerpo con otro Sistema Coordenado.

*Para calcular la magnitud de la suma de vectores, se debe realizar la conversión a cartesianas de ambos vectores, operar y calcular la magnitud.
*Para poder calcular las componentes del vector con magnitud ‘l2’, se deben realizar la suma de los ángulos ‘q2’ con el ángulo ‘q1’, para introducirlo dentro del Seno y el Coseno:
x1=l1*Cos(q1);
y1=l1*Sin(q1);
x2=l2*Cos(q1+q2);
y2=l2*Sin(q1+q2);
x=x1+x2;
y=y1+y2;

angulos-de-euler
El Sistema de referencia fijo se puede representar por una magnitud ‘r’ con ángulos y/o componentes en el espacio.
Estos ángulos constituyen un conjunto de coordenadas angulares que sirven para especificar la orientación de un sistema de referencia de ejes ortogonales, normalmente móvil, respecto a otro sistema de referencia normalmente fijos.

Longitud del Arco:
Si bien, las funciones trigonométricas no son lineales, los ángulos si lo son a lo largo de la circunferencia. Si queremos relacionar un ángulo con una medida en su circunferencia (desdoblar la circunferencia), sólo será necesario multiplicar el valor del ángulo (con unidades de radianes) por el radio de la circunferencia, en la fórmula conocida como “Longitud del Arco”.
longitud-de-arco

RECREACIÓN DE ENTORNO VIRTUAL DE UN ESPACIO 3D:
Para empezar, se debe partir por la visión de un solo elemento de observación, una cámara u ojo en un espacio, el cual queremos llevar a un plano 2D correspondiente a lo que consideramos nuestro campo de visión como lo conocemos, para esto, tenemos que hacer que nuestras coordenadas (x,y,z) de un punto o cuerpo en el espacio pase por dos ‘2’ transformaciones geométricas:
1ra. Transformación Geométrica:
Coordenadas R3 (x,y,z) a Coordenadas Angulares (teta, phi):esferaasc
  • El elemento observador se sitúa en el interior de una esfera unitaria, el cual representará todo lo visible en el ambiente o mundo por dicho observador. El sistema de Coordenadas más empleado es el Polar tipo Esférico, llamado “Coordenadas Celestes”, que emplea los ángulos “Elevación” y “Orientación” para ubicar todo lo que existe en el entorno de percepción de la esfera de visión.
  • Se podrá hacer referencia a cualquier punto de la esfera a partir de los ángulos “elevación” y “orientación”, haciendo que la percepción de la distancia no se pueda desarrollar bajo esta sola esfera.

2da. Transformación Geométrica:
Coordenadas Angulares (teta,phi) a Coordenadas Cartesianas R2 (x,y):

campo-de-vision
El vector representa hacia adonde estará apuntando nuestro campo de visión.
  • Establecemos nuestro campo de visión, a partir de un vector que irá desde el centro de la esfera hasta un punto escogido.
  • Puesto que los ángulos poseen una función, la cual es lineal y será el eje independiente con un rango entre -180° y 180°, para toda posición y/o proyección que se encuentre a lo largo de su circunferencia, el desarrollar una acción como mover la cabeza para arriba, abajo, izquierda o derecha, la podemos realizar como una rotación, simplemente haciendo una suma o incremento del ángulo que posee nuestro vector para dicho campo de visión, este será nuestro eje de referencia.
  • Cortamos un Cono con centro en aquel ángulo de referencia para formar nuestro Campo Visual, desarrollando un “Cono del Campo de Visión”.
    campo-de-vision-indeterminado
    Para calcular la proyección de nuestro ángulo en una pantalla bidimensional, requerimos de calcular El Cateto Opuesto (triángulo formado por el ángulo del objeto a observar [linea roja con punto rojo] y nuestra pantalla 2D [línea vertical amarilla]).
    Necesitamos para esto el Cateto Adyacente y el ángulo del objeto.
    Para calcular nuestro Cateto Adyacente, (La distancia focal de nuestra pantalla), calculamos con el ángulo del campo visual escogido [Teta_Campo] y la mitad del tamaño de nuestra “pantalla 2D”.
2da Transformación Coordenadas Esféricas a Cartesianas (x,y)
Teta_Campo=Pi/4; % Campo Visual Escogido 45° por preferencia
Teta_Obj=20*pi/180; % Para un objeto cualquiera a 20° desde la referencia
AlturaPantalla2D=720;%Altura de pantalla a la cual dedicamos nuestro campo visual.
                     %720 pixeles aproximadamente.
CatAdyacente=AlturaPantalla2D*Cot(Teta_Campo)/2;
CatOpuesto_Pantallaxy=CatAdyacente*Tan(Teta_Obj);
%Ya tenemos una componente para saber donde ubicar el objeto en nuestra pantalla.

Información a consideración:

Para Translaciones
Las traslaciones afectan la primera transformación geométrica y por ende también a la segunda.
-Los ángulos de los vértices cambian, si se encuentran a diferente distancia
-Las dimensiones con la que se observa el cuerpo cambian según la magnitud de la distancia que hay entre el observador y dicho objeto, debido a que la Longitud de arco del campo visual varía en proporción a dicha magnitud que será representado como el radio de nuestra esfera, más no así van a cambiar las dimensiones del cuerpo observado. Al aumentar la longitud de arco del Campo Visual, hace que el cuerpo ocupe un menor porcentaje de espacio de nuestro Campo Visual, haciendo que este se torne más pequeño durante la observación, en comparación a lo que sería la totalidad de la Longitud de Arco de nuestro campo visual.

Para Rotaciones
Las Rotaciones afectan la segunda transformación geométrica.
-Las magnitudes de distancia entre ejes se conserva, las dimensiones de los cuerpos se mantienen.
-Los ángulos y/o pendientes entre los vértices de los cuerpos, cambian en función de la perspectiva, es decir, de la distancia que hay desde el objeto visto en la pantalla y los ejes de referencia de la pantalla.

lens_test_02
Distoricón de cojín.

La imagen generada de este ‘cono’, encontraremos que tendrá algo llamado como “distorsión de cojín”, debido a que nuestro ‘cono’ tiene en su base parte de la curvatura de la esfera, esta se puede arreglar realizando una proyección o desarrollando una serie de distorsiones en la imagen resultante de dicho cono.

areasdecuerposgeometricos92Para realizar la primera transformación geométrica, no es necesario usar los ángulos de elevación y orientación, si nos damos cuenta, estos ángulos son diferentes en muchos aspectos, por lo que podemos escoger entre otras formas de cortar nuestra esfera y obtener los mismos resultados.

cortesEl ángulo de elevación, se caracteriza por hacer referencia en su recorrido a un “Huso Esférico”, puesto que su radio genera un ángulo que se encuentra en el vértice correspondiente al centro de mi esfera. El ángulo de Orientación se caracteriza por hacer referencia en su recorrido a un ‘Casquete’, porque desplaza su radio a lo largo del eje vertical.

“Un cazador, que se desplaza 10Km hacia el sur, despues 10Km hacia el este, y 10Km hacia el norte, donde vuelve a estar en el punto de partida donde comenzó, ¿De qué color son los osos?… Siendo que al las coordenadas para dezplazarse de norte a sur son de tipo huso esférico, al desplazarnos a lo largo de este se vuelve algo conmutativo, independiente de la trayectoria que tengamos al desplazarnos de este a oeste o vicebersa, el cual corresponde a una trayectoria sobre un casquete esférico, la única forma de haber regresado al punto de partida, al haber realizado dos desplazamientos sobre el huso y uno sobre el casquete, es encontrarse en la intersección entre los husos de la esfera, es decir, en el polo norte, en donde los osos son de color blanco, dando a la respuesta del enigma.”

RESUMIENDO LAS ETAPAS PARA DESARROLLAR ESTA TRANSFORMACIÓN PARA EL USUARIO:

1ro. Calcular el ángulo del objeto, teniendo como referencia los ejes de referencia las coordenadas del observador.
2do. Sumar ángulos elevación y orientación de la perspectiva del usuario.
3ro. Quitar objetos fuera del Campo Visual. (No es muy necesario)
4to. Quitar panza de la esfera.
5to. Quitar distorsión.
6to. Mostrar en pantalla.

******************************** ********************************
VISIÓN ESTEREOSCÓPICA

Nuestra visión es un claro ejemplo de la visión estereoscópica, nuestros ojos al estar separados, generan dos esferas que representan nuestro campo visual en 360° del entorno con pequeñas diferencias en cuanto a lo que es perceptible del entorno, y son estas diferencias las que nos permiten caracterizar algunos cuerpos que están cerca y diferenciarlos de los que están lejos, este es un proceso que se le denomina “paralaje”.

12646765_10154024758563054_1579092118158846403_oBásicamente, usando la misma teoría por la cual, cuando estamos en un vehículo, y percibimos que los cuerpos lejanos como las montañas, las nubes, las estrellas, el sol, etc…, se mueven muy poco o no dan impresión de movimiento, mientras que los cuerpos más cercanos a nosotros se mueven a la velocidad del vehículo, pero en sentido contrario a nosotros, es este movimiento, al que le podemos llamar gradiente o diferencia de los cuerpos que percibimos en las imágenes, dado que estamos en dos posiciones diferentes, compartiendo un espacio con otros objetos, esto es lo que nos permite a nosotros y a nuestra mente recrear el espacio que nos rodea con facilidad.

Telémetros Ópticos:

0_anpvs-7-insight-techonology

Estos dispositivos permiten medir distancia de forma remota, haciendo uso de cálculos trigonométricos.

tiro0017
Estimación de Imagen obtenida de un Telémetro y funcionamiento.

Una vez centrado el cuerpo entre ambas lentes, un dispositivo de cálculo se encarga de mostrar al usuario la distancia del objeto.

09-telemetro-del-admiral-graf-spee-en-su-sitio
Telémetro en Buque de Guerra.

Mientras mayor sea la lejanía del cuerpo el cual queremos estimar con precisión su distancia, podemos optar por aumentar la capacidad de resolución de nuestro dispositivo, o podemos escoger incrementar la separación entre nuestros lentes. En el caso de las embarcaciones, las distancias entre los lentes pueden requerir incrementarse al punto de superar la manga máxima de la distancia entre babor y estribor de la embarcación, haciendo que tecnologías altenrnativas, como el uso del radar y las nuevas tecnologías de resolución ayudan a compensar este defecto, sobretodo en los aviones.

teoria-de-vision-estereoscopica
Los ángulos generados por los cuerpos en el observador derecho e izquierdo tienden a aumentar su diferencia en cuanto más cerca se encuentre el objeto.

Mientras más se perciba el movimiento o cambio de posición de un objeto, al momento de comparar su ángulo o posición en las dos esferas de campo visual, o entre las dos imágenes que representen dicho campo visual, conociendo la distancia de separación entre ambas esferas o imágenes durante el momento de la toma, dicha diferencia, será inversamente proporcional a la distancia de lejanía del objeto a observar.

Si la variación la desarrollamos teniendo como referencia el ojo o cámara izquierda, la diferencia indicará la lejanía con respecto al ojo izquierdo, y si la variación la desarrollamos teniendo como referencia el ojo o cámara derecha, la diferencia indicará la lejanía con respecto al ojo derecho.

Problemas con respecto a la Visión Estereoscópica:
  • Se debe tener en cuenta para ambas esferas de entorno, que aquellos cuerpos que se encuentren en un ángulo perpendicular, es decir al frente, generarán mayor diferencia entre sus ángulos por lo que tendrán mejor capacidad y facilidad para percibir la distancia o lejanía de los cuerpos, en cambio aquellos que no se encuentran al frente, sino cercanos a los ‘0°’ o ‘180°’ tendrán problemas para determinar su distancia, puesto que se vuelve a nivel matemático una indeterminación y se tendrán que recurrir a otros métodos para poder estimar su lejanía.
  • De alguna forma se tiene que poder reconocer la posición de un mismo punto entre las dos imágenes, a nivel digital, este aspecto es el más complicado de todos, una posible solución es el emplear una sola cámara, que se encuentre en mínimo movimiento, para poder estar seguro de la ubicación de un pixel en toda la imagen.
  • Es imposible definir la distancia de un cuerpo de color uniforme que no contraste con un fondo o referencia, pues no permite la identificación de un inicio o final al cuerpo.
  • Mientras más lejano se encuentra el objeto, menor será el movimiento y se requerirá de una mayor resolución en el eje horizontal, para obtener una distancia real.
  • En objetos que reflejan la luz o imágenes, la distancia obtenida, será muchísimo mayor que la distancia real del cuerpo en sí, está ocurriendo un reconocimiento de la distancia del cuerpo que se encuentra en la imagen reflejada, con el añadido de la distancia del cuerpo reflejante a la cámara.

******************************** ********************************
TEORÍA DE CUATERNIONES:

Los cuaterniones son un conjunto de variables complejas ordenadas en un espacio tetradimensional, para establecer el eje de rotación sobre un cuerpo en un espacio tridimensional, de esta forma, poder realizar operaciones no conmutativas con una secuencia de rotaciones sobre ejes arbitrarios.
Transformación para desarrollar rotaciones sobre ejes arbitrarios:
//alfa=ángulo a rotar.
[a b c]=Vector unitario que representa el eje de rotación arbitrario.
[xp1 yp1 zp1]= Representa las coordenadas vectoriales del punto que se va a rotar.

K=1-cos(alfa);
xp2 = xp1*(a*a*K+1*cos(alfa))+yp1*(a*b*K-c*sin(alfa))+zp1*(a*c*K+b*sin(alfa))+1*(0);
yp2 = xp1*(a*b*K+c*sin(alfa))+yp1*(b*b*K+1*cos(alfa))+zp1*(b*c*K-a*sin(alfa))+1*(0);
zp2 = xp1*(a*c*K-b*sin(alfa))+yp1*(b*c*K+a*sin(alfa))+zp1*(c*c*K+1*cos(alfa))+1*(0);
uno = xp1*(       0         )+yp1*(       0         )+zp1*(       0         )+1*(1);
Se debe procurar que los ejes de referencia entre el vector unitario [a b c] y las coordenadas vectoriales del punto que se va a rotar, sean comunes.
Un ejemplo práctico de la funcionalidad de esta transformación, es cuando se desarrolla una trayectoria de rotación de un observador.
Si se sigue la siguiente secuencia:
1.- Mirar hacia arriba 90°.
2.- Mirar hacia abajo 90°.
3.- Mirar hacia la derecha 90°.
Esta secuencia de trayectorias rotacionales, en este orden, logra mostrarte lo que se lograría, si desde un principio solo hubieras rotado a la derecha 90°, sin que exista un cambio diferente en el Angulo de lo que se estaba viendo, es decir, lo ves todo normal, pero, si cambiamos el orden de las trayectorias:
1.- Mirar hacia arriba 90°.
2.- Mirar hacia la derecha 90°.
3.- Mirar hacia abajo 90°.
Comparar el estado inicial con el final del observador en esta secuencia, terminaremos con un resultado completamente diferente, primero que todo estaríamos mirando hacia el frente, es decir en el sentido a nuestra posición inicial, pero además, tendremos nuestra perspectiva rotada 90° con respecto a la horizontal del espacio de referencia inicial, es decir, tendremos el cuello sobre el hombro y la cabeza acostada.
Tanto el observador como los objetos en el espacio tendrán sus propios coordenadas vectoriales en el espacio, siendo que el observador dispondrá de tres vectores unitarios, uno por cada uno de los ejes en el espacio, de esta forma, podemos hacer rotar los ejes coordenados del observador entre estos mismos, para desarrollar la secuencia de trayectorias rotacionales según el mando, siempre considerando que estos tres vectores, debido a estas mismas trayectorias rotacionales arbitrarias que les obliga a actualizarse con cada rotación, tendrán en sus cálculos diversos valores en cada dimensión del espacio en sí, sin embargo, deberán de ser perpendiculares entre sí en todo momento.
Después de tener los tres vectores unitarios de los ejes del observador, procedemos a desarrollar proyecciones del objeto sobre estos ejes, siendo que estos ejes resultantes del observador, debido a que pueden contener valores en cada una de las dimensiones del espacio en sí, debemos asegurarnos que sean siempre ortogonales.
Desarrollar proyecciones del objeto sobre los ejes resultantes del Observador:
Donde:
//vect_eje_obser[sel_eje][sel_dim]: Los tres vectores unitarios de los ejes del observador
//[x1 y1 z1]: Las coordenadas vectoriales del punto del objeto, teniendo como ejes de referencia los ejes originales en el espacio en sí.
//[x2 y2 z2]: Las coordenadas vectoriales del punto del objeto, teniendo como ejes de referencia los ejes del observador.

x2=((x1*vect_eje_obser[0][0])+(y1*vect_eje_obser[0][1])+(z1*vect_eje_obser[0][2]));
y2=((x1*vect_eje_obser[1][0])+(y1*vect_eje_obser[1][1])+(z1*vect_eje_obser[1][2]));
z2=((x1*vect_eje_obser[2][0])+(y1*vect_eje_obser[2][1])+(z1*vect_eje_obser[2][2]));
Ya teniendo las coordenadas del objeto, según la referencia del observador, debemos convertir este vector espacial tridimensional, y desarrollar el cálculo para convertirlo en una imagen 2D sobre nuestra pantalla, de modo que podamos corregir la “ disposición de cojín”, este procedimiento fue ya mencionado anteriormente, donde se debe efectuar una doble transformación en el sistema de coordenadas, para poder llevarlo del espacio al plano 2D de nuestra pantalla.
//Primera transformación a coordenadas celestes.
teta1 = Atan2(y2,z2); //Elevación
teta2 = Atan2(x2,z2); //Orientación
//Segunda transformación, donde se calculará el componente extra que se debe adicionar para corregir la distorción en la imagen de la pantalla.
compx = Tan(teta1);
compy = Tan(teta2);
//Ubicar el centro e invertir la componente 'y' para la pantalla.
x2 = centro_pantalla_x + compx;
y2 = centro_pantalla_y - compy;
Esto tendrá como consecuencia, y también para decir a modo de prueba, con el fin de establecer si hemos desarrollado bien todos los procedimientos para el momento de la visualización en la pantalla, las líneas que son visiblemente rectas en el espacio 3D, deberán de verse también rectas en la pantalla, debido a que estas son proyecciones sobre nuestro nuevo sistema coordenado del observador presentarán una distorsión, debido a que la distancia de los cuerpos cambian de forma no lineal (siguiendo la función de la magnitud, según el teorema de Pitágoras, donde las variable se encuentran con un exponente al cuadrado, sumándose con otra variable y dentro de un radical), por lo que realmente, los cuerpos en la medida en que se alejan de nuestra perspectiva, deberían de apreciarse con distorsiones, pero esto nos imposibilitaría poder apreciar las formas reales de los cuerpos, siendo esto fácilmente solucionable siguiendo el anterior algoritmo.
Esto traerá como ventaja y con la finalidad de poder ver las rectas 3D, también apreciarlas como rectas en nuestra pantalla 2D, sin importar si las líneas pasan de un cuadrante a otro, como cuando al ver una carretera que se extiende atravesando el horizonte, más allá de nuestro campo visual, mientras nos ubicamos en un punto intermedio cualquiera de la recta o una carretera, las líneas que apreciamos de esta siempre las podremos ver como rectas, siempre que se encuentren dentro del campo visual del observador.
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s