domingo, 9 de junio de 2013

1 .-. Alguna Geometría antes de empezar.

Bien, el objetivo de este post es repasar algunos conceptos básicos de geometría  para que no tengamos problemas al hacer los programas y que todo el mundo pueda seguir el código. El principal inconveniente de la geometría es que puede costar "pensar" en 3D. La visión espacial hay gente que no la tiene muy desarrollada (yo entre ellos) pero, por suerte, se puede entrenar. Como consejo os recomiendo comprar, en una tienda de juguetes, las típicas formas geométricas que vienen en una caja y traen, esferas, cubos, cilíndros, etc y que sean semitransparentes (para poder ver lo que hay detrás). A mí me ayudaron,os dejo una imagen para que tengais una idea y la tienda donde los compré.


 



Es interesante también que tengais unos ejes XYZ de coordenadas. Estos los podeis hacer "a mano" con unas varillas de plástico de 3 colores distintos uniéndolas en cruz.

Bien, una vez dicho esto vamos con la teoría. En principio haré referencia todo el tiempo a espacios 3D que es lo que más vamos a usar, cuando hable de 2D lo haré saber.

PUNTO.

Un punto es un lugar del espacio que definimos mediante 3 valores numéricos X Y Z llamados coordenadas, con respecto a un lugar central al que llamaremos "Origen" y que tiene por coordenadas siempre (0,0,0).

LINEA.

Una línea es una sucesión de puntos que se extiende en una misma dirección (no hace giros).

PLANO.

Un plano viene determinado por dos líneas rectas no paralelas y es un objeto bidimensional ideal y no contiene volumen.

VOLUMEN.

Llamaremos volumen a cualquier tipo de objeto tridimensional cerrado, ya sea regular o no: esferas, cubos etc. Viene determinado por 3 líneas no pertenecientes al mismo plano.

VECTOR.

Un vector en geometría es un valor que permite saber qué movimiento tengo que realizar para ir de un punto de coordenadas X1,Y1,Z1 a otro X2,Y2,Z2. Ejemplo:

Puntos;:
A = 2,5,8
B = 0,9,3

El vector "V" para ir de A a B.
Vab = (0-2,9-5,3-8) = (-2,4,-5)

Esto quiere decir que para ir de A a B deberemos retroceder 2 unidades en el eje X, avanzar 4 en el eje Y y retroceder 5 en el eje Z.

Si queremos conocer la distancia en línea recta que separa A y B habremos de calcular el módulo del vector Vab. Que lo escribiremos así |Vab| y se calcula de la siguiente forma.


En nuestro ejemplo,
                                                           |Vab|  =   Math.Sqrt ((-2 ^ 2) + (4 ^ 2) + (-5 ^ 2)) = 6.71  


Ese 6.71 sería la distancia en línea recta desde A hasta B. Ya veremos que esto es muy últil por ejemplo, en el caso de cálculo de disparos.

Otro concepto interesante es la "distancia de un punto a un plano".

Por ejemplo, distancia del punto P(1,2,5) al plano T: 2x+2y-z-5=0

D = Math.Abs( Tx*Px + Ty*Py + Tz*Pz + V ) / Math.Abs(Math.Sqrt(Tx^2+Ty^2+Tz^2))

D = Math.Abs(2*1 +2*2 -1*5) /  Math.Abs(Math.Sqrt(2^2+2^2+(-1^2)) = 1.33

Otros conceptos que debereis repasar son los trigonométricos. SENO COSENO Y TANGENTE.

Con estos conceptos podreis realizar todo tipo de juegos en entornos 3D y 2D, pero recordad que, cuando más conocimientos tengais en estas áreas de geometría y fisica, más y mejores cálculos podreis realizar. Si durante el curso empleamos algunas cosas nuevas no explicadas aquí os iré dejando enlaces para que podais estudiarlos.

No hay comentarios:

Publicar un comentario