Академический Документы
Профессиональный Документы
Культура Документы
Mathematical Illustrations
(Version preliminar 0.5)
Equipo docente
Febrero 2015
2
Indice general
3
4 INDICE GENERAL
5. Transformations in 3D 43
5.1. Rigid transformations . . . . . . . . . . . . . . . . . . . . . . . 44
5.2. Dot and cross products . . . . . . . . . . . . . . . . . . . . . . 45
5.3. Linear transformations and matrices . . . . . . . . . . . . . . 45
5.4. Changing coordinate systems . . . . . . . . . . . . . . . . . . 50
5.4.1. Vectores . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.4.2. Funciones lineales . . . . . . . . . . . . . . . . . . . . . 52
5.4.3. Transformaciones lineales . . . . . . . . . . . . . . . . . 54
5.5. Rigid linear transformation . . . . . . . . . . . . . . . . . . . . 55
5.6. Orthogonal transformations in 2D . . . . . . . . . . . . . . . . 56
5.7. Orthogonal transformations in 3D . . . . . . . . . . . . . . . . 57
5.8. Calculating the effect of an axial rotation . . . . . . . . . . . . 57
5.9. Finding the axis and angle . . . . . . . . . . . . . . . . . . . 57
Bibliografa 58
Captulo 1
5
6 Getting started in PostScript
A4
792
720
648
576
504
y 432
360
216
144
72
0
0 72 144 216 288 360 432 504 576 612
x
Si hacemos un cambio de escala y pasamos a cm mediante la instruccion
28.35 28.35 scale, tenemos una pagina con el siguiente marco de referencia:
10 Getting started in PostScript
29
28
27
26
25
24
23
22
21
20
19
18
17
16
y 15
14
13
12
11
10
P(5,10)
9
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
x
El punto P , que esta situado en la misma posicion, tiene ahora unas
nuevas coordenadas, P = (5, 10).
Si a continuacion trasladamos el origen de coordenadas mediante la la
instruccion: 10 15 translate, tenemos un nuevo marco de referencia y las
nuevas coordenadas del punto son: P = (5, 5).
1.3 Coordinate frames 11
14
13
12
11
10
y 0
-1
-2
-3
-4
-5
P (-5, -5)
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11
x
Hay que tener mucho cuidado con las rotaciones y las traslaciones de
ejes, es facil perder el origen de coordenadas. Veremos consejos y formas de
gestionar los cambios de coordenadas y de recuperar o volver a los marcos
de coordenadas por defecto.
12 Getting started in PostScript
1.5. Errors
Escribir en PostScript al principio es una fuente continua de errores.
Veremos algunos trucos para ver como podemos depurar nuestro codigo.
Por ejemplo, para ver que lnea se esta ejecutando, pondremos los tpicos
comentarios de escritura de mensajes para que los saque por la consola de
salida, la instruccion: (punto control 1) = escribe en la consola el string:
punto control 1.
Podemos hacer tambien lo que nos recomienda Casselman, que es llamar
a un gestor de errores llamado ehandler. Para ello debemos conseguirlo y
ponerlo siempre en nuestro directorio de los programas fuentes y llamarlo en
la primera lnea del programa: (ehandler.ps) run. El gestor de errores nos
reduce la salida de errores enormemente.
15
16 Getting started in PostScript
[xQ xP , yQ yP ]
v =QP
2.2 Areas of parallelograms 17
2.3. Lengths
El teorema de de pitagoras es la herramienta basica para el calculo de
distancias entre dos puntos.
El teorema de pitagoras es de hecho un resultado geometrico que trata
de areas. y de hecho es as como lo pensaron los antiguos griegos.
un angulo entre dos vectores en funcion de sus componentes, todo ello argu-
mentando de forma geometrica (visual).
Lo que yo voy a presentar es lo mismo simplificando la exposicion y su-
poniendo que ya sabemos la siguiente formula del coseno del angulo entre
dos vectores, u = (x, y) y v = (a, b):
x a+y b
cos() =
kuk kvk
x a+y b uv
cos() = = .
kuk kvk kuk kvk
v
vu =
kvk
v
w=s
kvk
s = kuk cos()
uv a x+b y
s = kuk cos() = kuk =
kuk kvk kvk
22 Getting started in PostScript
v x a+y b v x a+y b
w=s = = [a, b]
kvk kvk kvk kvk2
Con que hayais entendido esto me basta. El que quiera revisar el razo-
namiento de Casselman lo puede intentar ahora sabiendo por donde van los
tiros.
De todo esto, lo que a nosotros nos interesa es saber la formula, ya que
seran precisamente las formulas las que implementaremos en los algoritmos.
2.5. Rotations
2.8. Lines
Esta seccion si que es importante. Tenemos que tener claro que una recta
son los puntos que satisfacen la ecuacion:
Ax + By + C = 0
2
Entendidas como parametros que sirven para determinar o caracterizar a un determi-
nado objeto o concepto geometrico, en este caso la recta. No son coordenadas del sistema
de referencia del plano.
24 Getting started in PostScript
Captulo 3
25
26 Variables And Procedures
poner en la pila: /s
Ejemplo:
% definici
on procedimiento dibujo cuadrado
% argumento entrada lado del cuadrado. Ejemplo llamada: 3 cuadrat
/cuadrat {
/s exch def
newpath
0 0 moveto
s 0 rlineto
0 s rlineto
s neg 0 rlineto
closepath
} def
% Programa:
3 cuadrat stroke
3.5 Procedures as functions 27
Pila Instrucciones
exch
/s
3
Pila Instrucciones
def
3
/s
Si tenemos varios parametros de entrada, vamos asignando variables a
estos valores en orden inverso (seg
un estan en la pila) a sus correspondientes
variables.
29
30 Coordinates and conditionals
Matrices
Otro concepto matematico importante que debemos recordar es el de
matriz. Veremos que representan y como se opera con ellas.
Las matrices surgen de un campo bien concreto: los sistemas de ecuaciones
(lineales). Veremos que las matrices es una notacion que sirven para manejar
como un todo los coeficientes de estos sistemas de ecuaciones.
Ecuaciones lineales
y =ax
1
x= y
a
a a1 = 1
x2 = a x1 + c y1
y2 = b x1 + d y1
Resoluci
on de un sistema lineal de dos ecuaciones
Vamos ahora a resolver el sistema lineal (homogeneo) de ecuaciones.
x2 = a x1 + c y1
y2 = b x1 + d y1
Si despejamos,
d x2 c y2
x1 =
ad bc
b x2 a y2
y1 =
bc ad
34 Coordinates and conditionals
d c
x1 = x2 y2
b a
y1 = x2 + y2
Expresemos ahora el sistema en notacion matricial, como sabemos:
" #
d
b
[x1 , y1 ] = [x2 , y2 ]
c a
A la cantidad
= ad bc
" #
a b
se la llama determinante de la matriz
c d
" #
a b
Dada una matriz M = , su determinante se suele expresar
c d
como
a b
det(M) = |M| = = = ad bc
c d
Aqu vemos lo u
til que resulta esta notacion matricial a la hora de manejar
sistema de ecuaciones. El sistema ha quedado compacto y su natacion hace
que sea facil su manejo como un todo.
" #
a b
[x2 , y2 ] = [x1 , y1 ]
c d
35
Lo representamos como
[x2 , y2 ] = [x1 , y1 ] M
" #
a b
siendo M =
c d
Si despejamos,
[x1 , y1 ] = [x2 , y2 ] M 1
Composici
on seguidas de dos sistemas de ecuaciones
Vamos a suponer ahora que hacemos dos cambios de coordenadas segui-
dos. Un punto P = (x1 , y1 ) pasa a P = (x2 , y2 ) en el primer cambio de
coordenadas y luego pasa a tener las siguientes coordenadas P = (x3 , y3 ) en
el segundo cambio de coordenadas.
Primer cambio de coordenadas tenemos:
x2 = a x1 + c y1
y2 = b x1 + d y1
x3 = A x2 + C y2
y3 = B x2 + D y2
Si expresamos los dos cambios seguidos como uno solo: expresamos las
incognitas x3 e y3 en funcion de x1 e y1 . Despues de un poco de algebra,
36 Coordinates and conditionals
sustituyendo las x2 e y2 del segundo sistema por sus valores del primero
tenemos:
A continuacion ponemos el u
ltimo sistema obtenido por combinacion de
los dos primeros, tenemos:
" #
(Aa + Cb) (Ba + Db)
[x3 , y3 ] = [x1 , y1 ] (4.3)
(Ac + Cd) (Bc + Dd)
x = a x + c y + e
y = b x + d y + f
38 Coordinates and conditionals
" #
a b
[x , y ] = [x, y] + [e, f ] (4.4)
c d
4.1. Coordinates
P
agina Este sera para nosotros el sistema de coordenadas basico que utiliza
Adobe para trabajar en la pagina. Tiene el origen en la esquina inferior
izquierda y utiliza como unidad el punto Adobe.
" #
a b
[x , y ] = [x, y] + [e, f ] (4.5)
c d
T
SC SC
El truco consiste en asociar los puntos del plano (x, y) a los del espacio
(x, y, 1).
Del sistema afn:
" #
a b
[x , y ] = [x, y] + [e, f ]
c d
a b 0
[x , y , 1] = [x, y, 1] c d 0 (4.6)
e f 1
1
a b 0 " #1 " #
A 0 A1 0
c d 0 = =
v 1 vA1 1
e f 1
" #1 " #
a b 1 d b
A1 = =
c d c a
1
No estamos aqu hablando de movimientos de objetos. Los movimientos de objetos
tendra importancia cuando trabajemos en 3D. Matematicamente los movimientos rgidos
son tambien transformaciones afines
4.5 How coordinate changes are made 41
T
(x, y) (x , y )
T [(x, y)] = (x , y )
x = a x + c y + e
y = b x + d y + f
O en forma matricial:
" #
a b
[x , y ] = [x, y] + [e, f ]
c d
O embebido en 3D:
a b 0
[x , y , 1] = [x, y, 1] c d 0
e f 1
42 Coordinates and conditionals
e f 1
a b 0
[x , y , 1] = [x, y, 1] c d 0
e f 1
Ya que el cambio afn queda totalmente determinado por esta matriz.
Resumiendo: representaremos los cambios de coordenadas mediante las
siguientes notaciones:
T
(x, y) (x , y)
[x , y ] = (x, y)M + (e, f )
[x , y , 1] = [x, y, 1]T
[x, y, 1] = [x , y , 1]T 1
Transformations in 3D
Hasta ahora lo que hemos visto en el curso son las transformaciones (li-
neales) de sistemas de coordenadas. Esto es, hemos pasado de una forma
de medir y orientacion de los ejes (sistema de coordenadas o marco de refe-
rencia) a otra disposicion de los ejes y de metrica (escala), otro sistema de
coordenadas. Los objetos geometricos, como tales, no los hemos movido del
sitio.
Ahora, sin embargo, estamos interesados en el problema siguiente: te-
nemos un sistema de coordenadas, una figura (o composicion de puntos) y
queremos moverla a otro sitio. Queremos cambiar las coordenadas de los
puntos que forman la figura a otras distintas que determinaran su nueva
posicion. A este movimiento se le llama transformaci
on.
Solo estamos interesados en aquellas transformaciones que permitan mo-
ver una determinada figura sin deformarla ni romperla. Estas transforma-
ciones representan la manipulacion de objetos solidos o los movimientos en
el plano de una figura rgida. Estas transformaciones se llaman transfor-
maciones rgidas y se definen, como parece natural, como aquellas que
conservan la distancias relativas entre puntos del objeto al que se le aplica la
transformacion.
En el plano estas transformaciones no las hemos estudiado por varios
motivos, el principal es que en un curso introductorio no se puede ver todo
en profundidad, segundo que el problema surge de forma natural al estudiar
43
44 Transformations in 3D
las figuras solidas. Las figuras solidas deben ser vistas desde distintos angulos
para obtener la idea de su forma, ademas de poder alojarlas y cambiarlas de
sitio en un escenario. Las transformaciones en el plano se pueden ver como
el caso particular de las transformaciones del espacio.
Las matematicas involucradas seran: los sistemas de ecuaciones lineales
y el algebra vectorial en el espacio. Herramientas que ya han aparecido en el
caso de los cambios de coordenadas en el plano.
Esta u
ltima asercion la damos de forma gratuita sin demostrarla o jus-
tificarla mucho.
Tambien nos podramos preguntar si todas las aplicaciones afines son
transformaciones rgidas, esto es, si las aplicaciones afines conservan las dis-
tancias relativas. Desde luego la traslacion del vector no altera las distancias,
pero la matriz lineal puede ser, por ejemplo, de cambio de escala con lo cual
ya no sera rgida la transformacion. Por tanto concluimos que una aplicacion
afn es rgida si lo es su parte lineal.
5.2 Dot and cross products 45
u v = x1 x2 + y1 y2 + z1 z2
uv
cos() =
kukkvk
Proyecci
on paralela Es lo mismo que hemos visto para el caso 2D.
Volumen con signo Esta operacion es interesante para ver como estan
orientadas las caras, volumenes o vectores entre ellos. [Optativo] Para
los que quieran saber por que este determinante nos da el volumen con
signo (o la superficie con signo en el plano) puede leer las paginas 185
y 186. Es un buen ejercicio para ver como las formulas y metodos alge-
braicos no surgen as sin mas. Para entenderlo hay que recordar que el
area de cuadrilatero de igual base entre paralelas permanece constante.
Proyecci
on perpendicular Lo mismo que ya sabamos.
x = x1 e1 + x2 e2 + x3 e3
y por tanto los coeficientes (x1 , x2 , x3 ) son las coordenadas de x. Las coorde-
nadas de los vectores las representaremos mediante una matriz fila [x1 , x2 , x3 ].
Recprocamente, dado un un sistema de coordenadas, los vectores
forman un marco.
Aclarado esto vamos a aclarar algunos conceptos que deben quedar claro:
Repetimos: los vectores son esas flechas que designan una magnitud
con direccion. Se les puede asignar coordenadas solo con respecto a un
marco de referencia.
Definicion: Un marco de referencia se dice ortonormal si los vectores
que lo forman son de longitud la unidad y son mutuamente perpendiculares.
5.3 Linear transformations and matrices 47
Por tanto como sabemos que dos vectores perpendiculares tienen su pro-
ducto escalar igual a cero.
(
1 si i = 1
ei ej =
0 si i 6= j
Si tenemos un vector v lo podemos expresar como la suma de sus proyec-
ciones paralelas sobre los vectores del marco, por tanto en un marco ortonor-
mal tendremos:
X
v= ci ei , donde ci = ei v
(Haced la comprobacion)
Otro objeto que representa una caracterstica geometrica es la funci
on
lineal. La funcion lineal l asigna a cada vector un n
umero con la propiedad
siguiente que la hace decirse lineal:
.
Una funcion lineal la representaremos mediante una matriz columna:
l1
l2
l3
l3
Una funci on lineal es una entidad geometrica con significado intrnse-
co, esto es, por s misma: la asignacion de un n
umero a cualquier vector.
En presencia de un marco y solo en presencia de el se le puede asignar
coordenadas.
48 Transformations in 3D
Definici
on: Una transformacion lineal en una aplicacion T que transfor-
ma vectores en vectores con la propiedad de ser lineal.
x = x1 e2 + x2 e2 + x3 e3
T (x) = T (x1 e2 + x2 e2 + x3 e3 ) = x1 T (e1 ) + x2 T (e2 ) + x3 T (e3 )
Ahora expresemos los vectores T (ei ) en funcion de los vectores del marco,
esto es: T (ei ) = ti,j ej . O de forma mas explcita:
Por tanto,
Agrupando,
T (x) = (x1 t1,1 + x2 t2,1 + x3 t3,1 )e1 +
(x1 t1,2 + x2 t2,2 + x3 t3,2 )e2 +
(x1 t1,3 + x2 t2,3 + x3 t3,3 )e3
T (x) = [x1 t1,1 + x2 t2,1 + x3 t3,1 , x1 t1,2 + x2 t2,2 + x3 t3,2 , x1 t1,3 + x2 t2,3 + x3 t3,3 ]
5.3 Linear transformations and matrices 49
La u
ltima expresion de T (x) la podemos escribir de forma matricial:
t1,1 t1,2 t1,3
T (x) = [x1 x2 x3 ] t2,1 t2,2 t2,3
aquellas en las que no deberan cambiar los vectores de tama no, y seg
un lo
que acabamos de decir, seran precisamente aquellas cuyo determinante valga
1.
El caso de det(T ) = 1 es un caso especial de transformacion rgida: son
las reflexiones. Que a nosotros no nos interesan de momento.
f = Tfe e
f = Tfe e
f~1
f1,1 f1,2 f1,3 e~1
~
f2 = f2,1 f2,2 f2,3 e~2
5.4.1. Vectores
Vamos a expresar un vector 3D 1 en el marco {e~1 , e~2 , e~3 }:
e~1
~x = x1 e~1 + x2 e~2 + x3 e~3 = xe e = [x1 , x2 , x3 ] e~2
e~3
Podramos igualmente expresar ~x en funcion del marco f :
f~1
f~3
Como sabemos expresar f = Tfe e podemos escribir:
f~1
f1,1 f1,2 f1,3 e~1
~
f2 = f2,1 f2,2 f2,3 e~2
Por tanto:
f~1
f1,1 f1,2 f1,3 e~1
~x = s1 f~1 +s2 f~2 +s3 f~3 = xf f = [s1 , s2 , s3 ] f~2 = [s1 , s2 , s3 ] f2,1 f2,2 f2,3 e~2
Por tanto:
f1,1 f1,2 f1,3
[x1 , x2 , x3 ] = [s1 , s2 , s3 ] f2,1 f2,2 f2,3
xe = xf Tfe .
l(~x) = xe le = xf lf
l3
5.4 Changing coordinate systems 53
li = l(ei )
.
Tambien sabemos como se relacionan las coordenadas de un vector ~x en
los dos marcos: xe = xf Tfe (ver apartado anterior)
l(~x) = xe le = xf Tfe le = xf lf
Por tanto:
lf = Tfe le
o si se quiere:
le = (Tfe )1 lf
l3 m3
As que:
l1 f1,1 f1,2 f1,3 l1
l(~x) = [x1 , x2 , x3 ] l2 = [s1 , s2 , s3 ] f2,1 f2,2 f2,3 l2
Por tanto:
m1 f1,1 f1,2 f1,3 l1
m2 = f2,1 f2,2 f2,3 l2
O bien:
54 Transformations in 3D
1
l1 f1,1 f1,2 f1,3 m1
l2 = f2,1 f2,2 f2,3 m2
le = (Tfe )1 lf
De forma similar:
u1,1 u1,2 u1,3
(~xA)f = xf Af = [y1 , y2 , y3 ] u2,1 u2,2 u2,3
xe Ae = (xA)e
= (xA)f Tfe
= (xf Af )Tfe
5.5 Rigid linear transformation 55
= xf (Af Tfe )
xe ((Tfe )1 Af Tfe )
Por tanto:
Ae = (Tfe )1 Af Tfe
e2 = (0, 1, 0)
e3 = (0, 0, 1)
59