Story Transcript
INTRODUCCIÓN DEL TEMA 2 ESPACIOS VECTORIALES Vamos a construir una serie de objetos sobre el plano z = 0. Al principio solamente tenemos dicho plano (en verde)
Antes de empezar a construir algo, empezamos por dibujar el sistema de referencia “canónico” formado por el origen y los tres ejes
Podemos interpretar esos ejes como una forma de, partiendo del origen, ser capaces de construir otros puntos a base de movimientos en esas direcciones. Por ejemplo, decir que el siguiente punto es el (10,8,3) es lo mismo que decir que lo hemos construido moviéndonos desde el origen 10 pasos en la dirección “derecha”, después 8 pasos hacia “adelante” y finalmente 3 pasos hacia arriba
Partimos del origen
Nos movemos 10 a la derecha
Ahora 8 hacia adelante
Finalmente 3 arriba
Con esta idea, decidimos construir cuatro objetos sobre este terreno. Los cuatro objetos van a ser los siguientes:
Estos objetos son complicados, así que como primer paso te planteas ser, al menos, capaz de calcular algunos puntos de ellos (sus “picos”) y para eso quieres construir esos puntos tal y como calculamos el (10,8,3) Empezando por la casa, podemos empezar por calcular las cuatro esquinas del suelo. Para ellos necesitamos saber qué tamaño queremos que tenga el suelo y nos dicen que tenga una fachada de longitud 10 y una profundidad de 20. Dibujando la casa de forma que el centro del suelo esté en el origen, los cuatro puntos a calcular serían
El punto de adelante a la derecha lo podemos obtener ahora partiendo del origen y moviéndonos 5 a la derecha y 10 adelante con lo que será el (5,10,0). De forma análoga obtenemos que los otros son (5,10,0), (5,10,0) y (5,10,0). Ahora queremos poner los objetos de forma que queden bonitos y se nos ocurre distribuirlos de la forma siguiente.
donde hemos puesto los centros de los objetos uno en cada cuadrante esto lo hemos hecho moviéndonos 20 a derecha a izquierda o derecha y 20 adelante o atrás. Es decir, que tenemos: Centro de la casa = (20,20,0) Centro del porche = (20,20,0) Centro de las pirámides = (20,20,0) Centro de las vallas = (20,20,0) Vamos a centrarnos de nuevo en la casa y queremos empezar por construirnos de nuevo las cuatro esquinas del suelo:
El problema es que ya no se ve tan claro cómo se llega a esos puntos desde el origen moviéndonos en las direcciones de los ejes. Está claro que hay que moverse a la izquierda y atrás, pero no cuánto.
Una primera idea es que parece más fácil llegar a ellos desde el centro de la casa que desde el origen. Incluso así sigue sin ser fácil. Una forma de solucionar esto es construir antes de nada unas nuevas direcciones por las que podamos movernos para llegar a estos puntos. Como los objetos están “inclinados” 45º nos interesan las diagonales. De hecho, si nos pusiéramos en la puerta de la casa nuestro “derechaizquierda” es la dirección dada por movernos a la derecha y atrás, esto es, la dirección (1,1,0) mientras que nuestro “adelanteatrás” sería derecha adelante, o sea (1,1,0).
Es decir hemos construido un nuevo “origen” desde el que movernos (el centro de la casa) y tres nuevas direcciones desde las que movernos. Este tipo de construcción se llama un sistema de referencia y es el primer paso para construir objetos cuando no se ve sencillo cómo hacerlo desde el origen usando los ejes. Los vectores que nos dan las direcciones se llaman una base. Nosotros los llamaremos u (el azul), v (el rojo) y w (el amarillo) Para movernos en una de estas direcciones, lo haremos de la siguiente forma: Movernos 2 “pasos” partiendo de C en la dirección de u es hacer C+2*u. Una simplificación útil en gráficos es que cada paso tenga siempre longitud 1. Tal y como hemos cogido u, realmente cada paso tiene longitud 2 ya que u era (1,1,0). Por eso, es mejor tomar u= 1/ 2 ,−1/ 2 ,0 y lo mismo con v. Ya podemos olvidarnos del origen y los ejes para construir la casa y usar solamente u, v, w. Una vez hecho esto podemos obtener fácilmente un vértice del suelo de nuestra casa en dos pasos
Partiendo del centro, nos movemos 5 pasos en la Después nos movemos 10 pasos en la dirección dirección de u de v Por tanto ese punto es C+5*u+10*v. Es fácil comprobar ahora que los vértices del suelo son: C+5*u+10*v, C5*u+10*v, C+5*u10*v, C5*u10*v. NOTACIÓN Y OBSERVACIONES Las construcciones anteriores se obtienen sumándole al origen del sistema de referencia una serie de múltiplos de los vectores que representan las direcciones en las que estamos interesados. Este tipo de sumas se llaman combinaciones lineales de los vectores del sistema de referencia. Es conveniente destacar que estamos usando simultáneamente puntos y vectores, lo que podría llevar a confusiones. Para evitarlas, una posibilidad (que se usa en bastantes libros de Informática Gráfica) es introducir al final de cada uno de ellos un dígito más que valdrá 1 ó 0 dependiendo de si es un punto o no (en cuyo caso será un vector). Así (3,4,5;1) representa el punto (3,4,5) y (3,2,1;0) el vector(3,2,1). Como siempre tendremos las siguientes operaciones (que encajan con nuestra notación) vector = punto final del vector – punto origen del vector vector + vector = vector punto + vector = punto punto + punto = imposible Esto último es fácil de recordar. Por ejemplo los puntos (3,4,5;1) y (2,2,1;1) no pueden sumarse porque quedaría (3,4,5;1) + (2,2,1;1) = (5,6,6;2) que no es ni punto ni vector. Este tipo de notación se llama notación proyectiva. A fin de simplificar la notación, nosotros no usaremos dicha notación. Respecto a las direcciones que escojamos la única limitación, en principio, es que a través de
ellas podamos construir todos los puntos que nos interesen. Un conjunto de vectores con esta condición se llama un sistema generador. Si tenemos como antes un punto C y un sistema generador u, v, w lo escribiremos R = {C;u,v,w}. Si un punto puede obtenerse, por ejemplo, partiendo de C y sumándole 2*u, luego 3*v y finalmente 4*w tendremos el punto P = C + 2*u + 3*v +4*w lo denotaremos por (2,3,4)R En principio, una buena idea podría ser tener sistemas de referencia con muchas direcciones ya que nos posibilita tener más “direcciones” para construir los puntos que queramos. Sin embargo nos encontramos con un problema al identificar los puntos que construimos, ya que puede haber más de una forma de construirlos. Veamos un ejemplo de esto: Partimos de: punto C = (20, 20, 0) vectores u = 1/ 2 ,−1/ 2 ,0 , v = 1/ 2 ,1/ 2 ,0 y w = (0, 0, 1). También podríamos incluir el eje x = (1, 0, 0) y el eje y = (0, 1, 0) Tendríamos R = {C; u, v, w, ejex, ejey} con el que podemos construir diferentes puntos. Si queremos construir el punto (0, 0, 0). Es fácil comprobar que las dos construcciones siguientes lo hacen: (0, 0, 0) = C + 0*u + 0*v + 0*w + 20*ejex + 20*ejey (0, 0, 0) = C +0*u + 2 v + 0w +0*ejex + 0*ejey Por tanto podríamos escribir (0, 0, 0) = (0, 0, 0, 20, 20)R o como (0, 0, 0) = (0,
2
, 0, 0, 0)R
O sea, el mismo punto puede escribirse de dos formas distintas, que se corresponden con las dos formas de construirlo. Esto puede hacer que nos equivoquemos. Por eso se suele pedir que los sistemas de referencia estén puestos de forma que las construcciones que puedan hacerse sean únicas, es decir, que un punto solamente pueda construirse de una única forma. La condición necesaria para ello es que los vectores escogidos sean linealmente independientes esto es, que ninguno pueda construirse a partir de los demás. Las dos condiciones juntas, que se puedan construir todos los puntos y que además se pueda hacer de una única manera es equivalente a pedir que los vectores del sistema de referencia sean
una base. Es una condición que nosotros usaremos (casi) siempre. En cambio, las condiciones acerca de la longitud de los vectores o del ángulo que forman no son necesarias. De todas formas, el caso más habitual es que los vectores sean perpendiculares entre sí y de longitud 1 al igual que ocurre con el sistema de referencia “canónico”.
Sistema de referencia canónico Sistema de referencia con ejes Sistema de referencia con de diferente tamaño vectores de diferente tamaño y no perpendiculares entre sí En el Tema 5 veremos técnicas para construir vectores perpendiculares. Veremos al final un caso en el que pueden interesarnos sistemas de referencia “inclinados”
CONSTRUYENDO OBJETOS MÁS COMPLEJOS Volviendo a nuestra casa, nosotros teníamos construidos los 4 puntos del suelo usando el sistema de referencia formado por el centro de la casa y los vectores u, v y w. Es fácil construir ahora 4 puntos más “levantando” estos, es decir sumándoles la altura de la casa multiplicada por w. Con eso tendríamos la siguiente situación:
Calculamos el pico de delante partiendo del centro de la casa, yendo 10 en dirección de v (el de atrás será 10) y luego la altura más la mitad del ancho en la dirección de w . Tenemos ahora:
Pero, ¿cómo dibujamos la casa? Para eso tenemos que saber construir objetos más complejos que puntos. RECTAS Tenemos dos puntos y queremos dibujar el segmento definido por esos dos puntos. Supongamos que tenemos el punto P en azul y el Q en rojo.
Podemos obtener los puntos de la recta a partir de P moviéndonos hacia Q o en dirección
contraria a Q. Por eso, en primer lugar calculamos el vector u que va de P a Q.
A partir de aquí puedo calcular cualquier punto de la recta mediante la expresión: P + t*u = P + t*(QP) donde t me dice la longitud del paso que quiero dar, entendiendo que un paso de longitud 1 es ir de P a Q.
Entendiendo lo que hemos hecho, es fácil escoger puntos adecuados:
– – – – –
Si t es positivo, los puntos están en la dirección que va de P a Q Si t es negativo, irán en dirección contraria Cuanto más grande sea t, más alejado sale el punto de P En t = 1 sale exactamente Q Si queremos puntos entre P y Q, necesitaremos valores de t positivos pero que valgan como mucho 1
Es decir, la ecuación del segmento que va de P a Q es {P+t*u / 0