TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que...

40
Transformaciones geométricas tridimensionales 4 TRANSFORMACIONES GEOMETRICAS TRIDIMENSIONAL Computación Gráfica 69

Transcript of TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que...

Page 1: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

4 TRANSFORMACIONES GEOMETRICAS TRIDIMENSIONAL

Computación Gráfica 69

Page 2: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

Los métodos para las transformaciones geométricas y de modelado de objetos en tres dimensiones se extienden de los métodos bidimencionales al incluir las consideraciones para la coordenada de Z. Ahora trasladamos un objeto al especificar un vector de traslación tridimensional, que determina el desplazamiento del objeto en cada una de las tres dimensiones de las coordenadas. De manera similar, escalamos un objeto con tres factores de escalación de las coordenadas. La extensión de la rotación tridimensional es menos directa. Cuando analizamos las rotaciones de la rotación bidimensionales en el plano de XY, fue necesario considerar solo los giros alrededor de ejes perpendiculares al plano XY. En el espacio tridimensional, podemos seleccionar cualquier orientación espacial como un compuesto de tres rotaciones, una para cada uno de los tres ejes cartesianos. De modo alternativo, un usuario puede establecer con facilidad una matriz general de rotación, dados la orientación del eje y el ángulo de rotación que se requiere. Como en el caso de las dos dimensiones, expresamos las X transformaciones geométricas en forma de matriz, que se crea al concatenar las matrices para las transformaciones individuales en las secuencia. 4.1 Traslacion En la representación homogénea tridimensional de las coordenadas, se traslada un punto (figura 4-1) de la posición P=(x,y,z) a la posición P’ = (x’,y’,z’) con la operación de matriz

=

1

*

1000100010001

1'''

ZYX

ttt

ZYX

z

y

x

(4-1)

o P’ = T * P (4-2)

Figura 4.1 traslación de un puntocon el vector T (tx,ty,tz)

70 Dpl. Ing. Carlos Balderrama Vásquez

Page 3: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x, y y z ,se asigna cualquiera valores reales. La representación de matriz en la ecuación 4-1 equivalente a las tres ecuaciones. X’ = X + T Y’ = Y +T Z’= Z + Y (4-3)

Figura 4.2 Traslación de un objeto con el vector de traslación T Un objeto se traslada entres dimensiones al trasformar cada uno de los puntos de definición de lo objeto. Para uno objeto que se representa como un conjunto de superficies de polígonos, trasladados cada vértice de cada superficie (figura 4-2) y volveremos a trazar las facetas del polígono en la nueva posición.

Obtenemos el inverso de la matriz de traslación en la ecuación 4-1 al anular las distancias de traslación tx,ty y tz. Esto produce una traslación en la dirección opuesta, y el producto de la translación y su inverso producen la matriz identidad. 4.2 Rotación Para generar una transformación de rotación para un objeto, debemos designar un eje de rotación (con respecto del cual girará el objeto) y la cantidad de rotación angular. A diferencia de las aplicaciones bidimencionales, en las que todas las transformaciones se llevan a cabo en el plano de XY, una rotación tridimensional se puede especificar alrededor de cualquier línea en el espacio. Los ejes de rotación más fáciles de manejar son aquellos paralelos a los ejes de coordenadas. También podemos utilizar combinaciones de rotación de ejes de coordenadas (junto con traslaciones apropiadas) para especificar cualquier rotación general.

Computación Gráfica 71

Page 4: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

Por norma general, los ángulos de rotación positiva producen giros en sentido opuesto al de las manecillas del reloj con respecto del eje de una coordenada, si vemos a lo largo de la mitad positiva del eje hacia el origen de las coordenadas (figura 4-3). Esto concuerda con nuestro estudio anterior de la rotación en dos dimensiones, donde las rotaciones positivas en el plano de XY son en sentido opuesto al de las manecillas del reloj alrededor de ejes paralelos al de la z.

igura 4-3 Las direcciones de rotación positivas con respecto de los ejes de las

4.3 Rotaciones de los ejes coordenadas

as ecuaciones de la rotaciones del eje de las Z en dos dimensiones se extiende con

’ = x cos θ - sen θ (4-4)

os parámetros θ especifica el ángulo de rotación. En la forma homogénea de las

Fcoordenadas son en sentido inverso al de las manecillas del reloj, cuando miramos hacia el origen de una posición de coordenadas positivas en cada eje

Lfacilidad a la tercera dimensión:

xy’ = x sen θ - cos θ z’ = z

Lcoordenadas, las ecuaciones de la rotación del eje de las Z tridimensional se expresa como.

72 Dpl. Ing. Carlos Balderrama Vásquez

Page 5: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

Figura 4-4 Rotación de un objeto con respecto del eje Z

=

1

*

1000010000cos00cos

1'''

ZYX

sensen

ZYX

θθθθ

(4-5)

Que podemos escribir de manera más sucinta como

P’ = Rz(θ) * P (4-6) La figura 4-4 ilustra la rotación de un objeto con respecto del eje de las Z. Las ecuaciones de transformación para las rotaciones en relación con los otros dos ejes de las coordenadas se puede obtener con una permutación cíclica de los parámetros de coordenadas x,y y z en las ecuaciones 4-4 . es decir utilizamos las sustituciones

x y z x (4-7) Como lo ilustra la figura 4-5. Al sustituir las permutaciones 4-7 en las ecuaciones 4-4, obtenemos las ecuaciones para una rotación del eje de las X :

Y’ = y cos θ - z sen θ Z’ = y sen θ + z cos θ (4-8) X’ = x

Que se puede expresar en la forma de coordenadas homogéneas.

Computación Gráfica 73

Page 6: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

Figura 4-5 Permutación cíclica de los ejes de las coordenadas cartesianas para producir los tres conjuntos de ecuaciones de rotación del eje de coordenadas.

Figura 4-6 Rotación de un objeto con respecto del eje de las X.

(4-9)

o P’=Rx(θ)*P (4-10)

a rotación de un objeto en relación con eje de las X se demuestra en la figura 4-6.

l permutar de manera cíclica las coordenadas en las ecuaciones 4-8, obtenemos las

z’ = z cos θ - x sen θ 4-11)

=

1

*

10000cos00cos00001

1'''

ZYX

sensen

ZYX

θθθθ

L Aecuaciones de transformación para una rotación del eje de las Y:

x’ = z sen θ + x cos θ (y’ = y

74 Dpl. Ing. Carlos Balderrama Vásquez

Page 7: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

4-7 Rotación de un objeto con respecto del eje de las Y.

La representación para la rotación del eje de las Y es

(4-12)

o

P’=Rx(θ)*P (4-13)

En la figura 4-7 se presenta un ejemplo de l

tación θ por -θ. Los alores negativos para los ángulos de rotación generan rotaciones en una dirección en el ntido del reloj, de modo que se produce la matriz identidad cuando se multiplica

inversa al intercambiar renglones y columnas. sto es, podemos calcular el inverso de cualquier matriz de rotación R al evaluar su

−=

1

*

10000cos00010

1''

ZYX

senZY

θθ

θθ

00cos' senX

a rotación de eje de las Y. Se forma una matriz de rotación inversa al sustituir el ángulo de rovsecualquier matriz de rotación por su inverso. Puesto que sólo se afecta la función se seno cuando se cambia el signo del ángulo de rotación, se puede obtener también la matriz Etranspuesta (R-1 = Rt). Este método para obtener una matiz inversa se aplica también para cualquier matriz de rotación compuesta.

Figura

Computación Gráfica 75

Page 8: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

4.4 Rotaciones Tridimensionales Generales coincide con un eje

e coordenadas como una transformación compuesta que implica combinaciones de

e un objeto sobre un eje paralelo a uno e los ejes de las coordenadas, es posible lograr la rotación deseada con la siguiente

. Se traslada el objeto de modo que el eje de rotación coincida con el eje de coordenadas paralelo.

3. a el objeto de manera que se regrese el eje de rotación a su posición original.

n la figura 4-8 se ilustra los pasos de esta secuencia. Cualquier posición de coordenadas P n el objeto en esta figura se transforma mediante la secuencia que se presenta como

x

onde la matriz compuesta para la transformación es

(θ)=T-1*Rx(θ)*T

Que es de la misma forma que la secuencia de transformación bidimensional para la tación con respecto de un punto pivote arbitrario.

uando se debe girar un objeto en relación con un eje que no es paralelo a uno de os ejes de s coordenadas, se tiene que realizar algunas transformaciones adicionales. En este caso,

Es posible establecer una matriz de rotación para cualquier eje que nodtraslación u rotaciones de los ejes de las coordenadas. Obtenemos la matriz compuesta necesaria al establecer en primer termino la secuencia de transformación que desplaza el eje de rotación seleccionado a uno de los ejes de las coordenadas. De este modo establecemos la matriz de rotación con respecto del eje de coordenadas para el ángulo de rotación especifico. El ultimo paso consiste en obtener la secuencia de transformaciones inversas que regresa el eje de rotación a su posición original. En el caso especial en que debe efectuar la rotación ddsecuencia de transformación. 1

2. Se realiza la transformación especifica con respecto de ese eje. Se traslad

Ee

’=T-1*R (θ)*T*P P

D

R

ro Clatambién en necesario que las rotaciones estén alineadas con un eje de coordenadas seleccionadas y regresar el eje a su orientación inicial. Dadas las especificaciones para el eje de rotación y el ángulo de rotación, podemos llevar a cabo la rotación requerida en cinco partes:

76 Dpl. Ing. Carlos Balderrama Vásquez

Page 9: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

Figura 4-8 Secuencia de transformaciones

aralelo al eje de las X.

de manera que el eje de rotación pase a través del origen de las coordenadas.

4. rotaciones inversas para regresar el eje de rotación a su orientación

El

je de las Z es una opción lógica y el análisis siguiente demuestra la manera en que se

, como en la figura 4-0, o con un punto de coordenadas y ángulo de direcciones (o cosenos de dirección) entre

para girar un objeto en relación con un eje p 1. Se traslada el objeto

2. Se gira el objeto de modo que el eje de rotación coincida con uno de los ejes de las coordenadas.

3. Se efectúa la rotación especifica con respecto del eje de coordenadas. Se aplican lasinicial.

5. Se aplica la traslación inversa para regresar el eje de rotación a su posición original.

Podemos trasformar el eje de rotación en cualquier de los tres ejes de las coordenadas. edeben establecer las matrices de transformación a fin de tener el eje de rotación en el eje de las Z y regresar el eje de rotación a su posición original (figura 4-9). Se puede definir un eje de rotación con dos pociones de coordenadas1

Computación Gráfica 77

Page 10: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

el eje de rotación y los dos ejes de coordenadas. Supondremos que se definen el eje de rotación con dos puntos, como se ilustra, y que la dirección de al rotación debe ser en sentido inverso al de las manecillas del reloj al buscar a lo largo del eje P2 a P1. Entonces, se define un vector del eje por medio de los dos punto como

Figura 4-9 Cinco pasos de transformación para obtener una matriz compuesta para la rotación con respecto de un eje arbitrario, con el eje de rotación proyectado en el eje de

= (x2 – x1,y2 – y1,z2 – z1) (4-14)

Así, se define un vector unitario u a

(4-15)

donde los componentes a, b y c deleje de rotación:

1 / |V|, b = y2 –y1 / |V|, c = z2 –z1 / |V| (4-16)

las Z. V = P2 – P1

lo largo del eje de rotación como

u = V/ |V|= (a,b,c)

vector unitario u son los cosenos de dirección para el

a = x2 –x

78 Dpl. Ing. Carlos Balderrama Vásquez

Page 11: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

Si la rotación debe tener la dirección opuesta (en sentido de las manecillas del reloj, al ve P2 a P aría modo que

1), entonces volte mos el vector del eje V y el vector unitario u de señalaran de P2 hacia P1.

Figura 4.10 eje de rotación (línea de rayas) que se define con los puntos P1 y P2. la

irección para el vector de eje unitario u se determina al especificar la dirección de drotación

Figura 4.11 Traslación del eje de rotación al origen de la coordenadas.

da es establecer la atriz de traslación que cambia la posición del eje de rotación en forma tal que pasa atreves

(4-17)

Que cambia de posición del eje de rotación y el objeto, como de puede apreciar en la figura 4 -11.

El primer paso en la secuencia de transformación para la rotación deseamdel origen de las coordenadas. Para la dirección de rotación necesaria (figura 4-10), se realiza esta operación al mover el punto P1 al origen. (si se especificó al dirección de rotación en la dirección contraria, se desplazaría P2 al origen.) esta matriz de traslación es

− 1001 x

−−

=

100011001010

zy

T

Computación Gráfica 79

Page 12: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

Ahora bien, necesitamos las transformaciones que colocaran el eje de rotación en el eje de las Z. Podemos utilizar las rotaciones del eje de coordenadas para lograr esta alineación en

os paso. Hay varias maneras de cubrir los dos pasos. Primero, efectuamos una rotación

u

α x

u

(A) B)

Figura del eje de las x para proyectar en el con el eje de la z (b)

s e rotación. Las operaciones de producto punto nos permite definir los términos del coseno

x

u=(0,0,1)

z Figura 4.13 La rotación ecto d s x en el plano xz se efectua al girar

’ (la proyección de u en z) a través del ángulo de alfa en el eje de las z

ener u n el plano de XZ. Este ángulo de rotación es el ángulo entre la proyección de u en el

dalrededor del eje de X para transformar el vector u en el plano de XZ. De esta manera, giramos u sobre el eje de las Z al utilizar la rotación del eje de las Y. En la figura 4-12 se ilustra estas dos rotaciones para una orientación posible del vector u.

y y

α x

z z

(

4.12 se gira el vector unitario u alrededor plano de xz (a), luego se gira respecto del eje de las Y para alinearlo Dado que los cálculos de la rotación. Implican funciones del seno y del coseno, podemos utilizar operaciones del vector estándar a fin de obtener los elementos de las dos matricedy los productos vectoriales cruz ofrecen un medio para obtener los términos del seno.

y

U’ u

de u con resp el plano de y

el eje de lau

Establecemos la matriz de transformación para la rotación con respecto del eje de las X al determinar los valores para el seno y el coseno del ángulo de rotación necesario para teplano YZ como el vector u’ =(0,b,c), entonces el coseno del ángulo de rotación � se puede

80 Dpl. Ing. Carlos Balderrama Vásquez

Page 13: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

determinar a partir del producto punto de u’ y el vector unitario uz a lo largo del eje de las Z.

Cos α = u’ * u / |u’|*|u | = c/d (4-18)

z z

Donde d es la magnitud de u’: 22 cbd +=

con base en el producto cruz de u’ y u2.

(4-19)

de modo similar, es posible determinar el seno de �a forma independiente de la coordenadas de este producto cruz es:

y la forma cartesiana del produ’ x uz = ux * b (4-21)

al balancear el lado derecho de las enemos

(4-22)

Ahora que determinado los valores ppodemos establecer la matriz de rotación de u alrededor del eje de las X

Lu’ x uz = ux |u’| |uz| senθ (4-20)

ucto cruz nos da

cuaciones 4-20 y 4-21 y anotar que |uz| = 1 y |u’| = d,

ted sen α=b

o sen α= b/d

ara cos α en términos de los componentes del vector u,

=

1000

00)(

dc

db

ddRx α

− 000001

bc

(4-23)

Esta matriz gira vector unitario con respecto del eje de las X en el plano de XY.

y

uz=(0,0,1)

x U’’=(a,c,d)

z

igura 4.14 Rotación del io u’’ (vector u después de girarlo en el plano xz) on respecto del eje de las y, la rotación positiva del ángulo beta alinea u’’ con el vector uz

vectoe unitarFc

Computación Gráfica 81

Page 14: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

A continuación, debemos determinar la forma de la matriz de transformación que girara el vector unitario en el plano de XZ en sentido opuesto al de las manecillas del reloj con el eje de las Y en el eje positivo de Z. La orientación del vector unitario del plano de XZ (después

’ * uz / |u’’|*|uz| = d (4-24)

Dado que |uz| = |u’’| = 1. Cu pend nte d las co as del producto cruz

con la forma cartesiana

u’’ x uz = uy * (-a) (4-26)

encontramos que

de transformación para la rotación de u’’ con respecto del eje de las Y

(4-28)

Con las matrices de transformación 4-17,4-23,4-28, se elimina el eje de rotación con el eje positivo Z,. Ahora es posible aplicar el ángulo de rotación especifico θ como una rotación on respecto del eje de las Z:

(4-19)

de la rotación con respecto del eje de las X)de presenta en figura 4-14. Este vector, que se denomina u’’ , tiene el valor de a para su componente de X, puesto que la rotación alrededor del eje de las X no altera al comportamiento de X. Su componente de Z es d (la magnitud de u’) porque se giro al vector u’ en relación con el eje de las Z. Y el componente de Y de u’’ es 0, ya que ahora cae en el plano de XZ. De nuevo, podemos determinar el coseno del ángulo de rotación β a partir de las expresiones para el producto punto de los vectores unitarios u’’ y uz:

Cos β= u’

ando comparamos la forma inde ie e ordenad

u’’ x uz = uy |u’’| |uz| sen β (4-25)

sen β =-a (4-27) Por tanto, la matrizes

=

100000

00

)(da

ad

Ry β 0010

c

− 00cos θθ sen

=

1000010000cos

)(θθ

θsen

Rz

82 Dpl. Ing. Carlos Balderrama Vásquez

Page 15: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

Para concluir la rotación requerida en relación con el eje determinado, necesitamos transformar el eje de rotación de nuevo a su posición original: esta operación se realiza al aplicar los inversos de las transformaciones 4-17,4-23,4-28. De esta manera se puede expresar la matriz de transformación para la rotación con respecto

x(α)*T (4-30)

esta para cualquier secuencia de transformaciones tridimensionales:

La submatriz superior izquierda de 3 por 3 de esta matriz es ortogonal. Esto significa que los renglones (o las columnas) de esta submatriz fo rios ortogonales cuya rotación se efectúa por medio de las matriz R en los ejes de x, y y z, de modo respectivo:

Por tanto podemos considerar un sistema de coordenadas locales que definen mediante de eje de rotaciones y formas solo una subm triz con columnas que son los vectores de coordenadas unitarias locales. Al suponer que ele je de rotación no es paralelo a ningún eje de coordenadas, podemos formar el siguiente conjunto local de vectores unitarios (figura 4-

5):

i expresamos los elementos de los vectores unitarios locales para el eje de rotación como:

’,uy3’) (4-34) z’ = (uz1’,uz2’,uz3’)

de un eje arbitrario como la composición de estas siete transformaciones individuales: R(θ) = T-1 * Rx

-1(α)*Ry-1(β)*Rz

-1(θ)*Ry(β)*R

Un método un poco más rápido, pero tal ves menos intuitivo, para obtener la matriz de rotación compuesta Ry(β) * Rx(α) consiste en aprovechar la forma de la matriz compu

=00

333231

232221

rrrrrr

R (4-31)

1000

0131211 rrr

rman un conjunto de vectores unita

11

11

23

11

33

a

=

001

*13

12

13

rrr

R

=

010

* 22

21

rrr

R

=

100

* 32

31

rrr

R (4-32)

1

u’ = u uy’ = u x ux / | u x ux | (4-33) ux’ = uy’ x uz’

S Ux’ = (ux1’,ux2’,ux3’) Uy’ = (uy1’,uy2U

Computación Gráfica 83

Page 16: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

y ur uk

uj

x

z

que se define mediante l vector unitario u.

Entonces la matriz co β)*Rx(α).

(4-35)

Esta matriz transforma los vectores unitarios ux’, uy’ y uz’ en los eje de x, y y z de manera respectiva. Así, el eje de rotación de alinea con .5 Escalación

(x,y,z) con specto del origen de las coordenadas de pueden escribir como

o

P’=S * P (4-37)

Figura 4.15 sistema de coordenadas locales para un eje de rotacióne

mpuesta que se requiere, equivale al producto de Ry( Y es:

=

10000

0

'3

'2

'1

321

'''

uzuzuz

uxuxux

R

el eje de las Z , ya que uz’ = u.

0'''321

uyuyuy

4

a expresión matricial para la transformación de escalación de una posición P =Lre

=

*

000' ZSZ Z

Y (4-36)

11000

000000

1

''

YX

SS

YX X

84 Dpl. Ing. Carlos Balderrama Vásquez

Page 17: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

onde a los parámeas expresiones explíon respecto del origen son

x’=x * Sx, y’=y * Sy, z’=z * Sz, (4-38)

rigen de las coordenadas. También, si no todos los Paramentos e Transformación son iguales, se cambian las dimensiones relativas en el objeto.

Conservamos la form original de un objeto de manera uniforme con cada parámetro de

resentar on la siguiente secuencia de transformaciones:

2. Se escala el objeto con respecto del origen de las coordenadas al utilizar la

u posición original.

Esta se estra en la figura 4-18. De esta manera la represela concatenación de estas transformaciones trasladar – escalar - trasladar como:

Figura 4.16 escalación de un objeto

tros de escalación Sx,Sy y Sz se asignan cualesquiera valores positivos. citas para las transformaciones de las coordenadas para la escalación

DLc

Escalar un objeto con la transformación 4-36 cambia el tamaño del objeto y lo vuelve a posicionar con respecto del od

aescalación estableciendo en 2 se ilustra en la figura 4-17. La escalación con respecto de una posición fija seleccionada (xf,yf,zf) se puede repc

1. Se traslada el punto fijo al origen.

ecuación 4-36. 3. Se traslada el punto fijo de regreso a s

cuencia de transformaciones se demuntación matricial para una escalación de punto fijo arbitraria se puede expresar como

Computación Gráfica 85

Page 18: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

Figura 4-17 pasa para la escalación de un objeto en el espacio

(4-39)

( )( ) ( )( )( )

−−

=−−−

1000

*100*100

,,*,*,, fyy

fxx

fffzyxfff

yssxss

zyxssszyx

triz inve

( ) − *100 fzz zss

Formamos la matriz de escalación inversa ya sea para la ecuación 4-42 o la ecuación 4-45 al reemplazar los parámetros de escalación Sx,Sy y Sz con sus recíprocos. La ma rsa genera una transformación de escalación opuesta, de modo que la concatenación de cualquier matriz de escalación y su inversa producen la matriz identidad.

T

86 Dpl. Ing. Carlos Balderrama Vásquez

Page 19: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

4.6 Vistas Y Proyecciones Tridimensionales

n aplicaciones gráficas bidimensionales, las operaciones de vistas transE fieren posiciones el plano de coordenadas mundiales a posiciones de pixel en el plano del dispositivo de

nadas mundiales, un positivo y recorta la

scena contra las cuatro fronteras del puerto de vista.

enerar una vista de los que veríamos nos situáramos en el centro de un grupo de objetos o adentro de un solo objeto, como un

n este capitulo analizaremos las operaciones generales que se necesitan para producir

dsalida. Al utilizar las fronteras rectangulares para la ventana en coordepaquete bidimensional mapea la escena mundial a coordenadas de dise En el caso de las aplicaciones gráficas tridimensionales, la situación es un poco más complicada porque ahora tenemos más opciones para la generación de vistas. En primer término, podemos observar un objeto desde cualquier posición en el espacio : desde el frente, desde arriba o desde atrás. O bien, podríamos gsiedificio. Además, las descripciones tridimensionales de objetos se deben proyectar en la superficie de vista plana del dispositivo de salida. Y ahora, las fronteras del recorte encierran un volumen de espacio, cuya forma depende del tipo de proyección que se selecciona. Evistas de una escala tridimensional y estudiamos también procedimientos de vista específicos de una escena tridimensional que se ofrecen en la programación gráfica.

Figura 4-18 Representación de un punto en el plano de proyección.

Computación Gráfica 87

Page 20: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

4.7 Coo

enerar una vista de un objeto en tres dimensiones es parecido a tomar una fotografía de fotografiar el objeto desde cualquier ángulo, a

ara. Cualquier objeto que parezca en el localizador de vista se proyecta sobre la superficie de película plana.

cio, la rientación y el tamaño de la apertura de diagrama de la “cámara”.

e selecciona una vista particular para una escena al establecer primero el sistema de sistema de coordenadas de

xv * zv

P0=(x0,y0,z0) xw

stema s de vistas del lado derecho, con los ejes xv, yv , zv con

e esta manera, se define un plano de visión, o plano de proyección, perpendicular al eje de

filmación particular de la escena. Las osiciones en coordenadas mundiales en la escena se transforman a coordenadas de vista, ue a su vez se proyectan en el plano de visión.

rdenadas De Vista. Gobjeto. Podemos desplazarnos al rededor ydiferentes distancias y con diversas orientaciones de la cáma El tipo y el tamaño del lente de la cámara determinan que partes de la escena aparecen en la imagen final. Estos conceptos se incorporan en los paquetes de gráficas tridimensionales de modo que es posible generar las vistas de una escena, dada la posición en el espao 4.8 Especificación del plano de visión. Scoordenadas de vistas, que también recibe el nombre de referencia de vistas, como se ilustra en la figura 4-2. yw yv

zw

Figura 4-19. si de coordenadarespecto de una escena en coordenadas mundiales. Dvista de zv’. Podemos considerar el plano de visión como el plano de la película en una cámara, el cual se ha colocado y orientado para lapq

88 Dpl. Ing. Carlos Balderrama Vásquez

Page 21: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

plano de visión plano de visión

yw w

(a)

z zw

y (b) xw xw

w

-20. rienta iones el pla o de sión para coordenadas específicas de vector dial. L orienta el plano de visión de

(a), mientras que (1,1,0) de la orientación de la parte (b).

s desplazamos alrededor el origen de las coordenadas de vista.

Figura 4-21. Vista de una escena desde direcciones distintas con un punto de referencia de vista fijo.

Figura 4 O c d n vinormal en relación con el origen mun a posición (1,0,0)la parte

Con el propósito de obtener una serie de vistas de una escena, podemos conservar fijo el punto de referencia de vista y cambiar la dirección de N, como se muestra en la fig. 4-3. esta operación corresponde a la generación de vistas conforme nod

Computación Gráfica 89

Page 22: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

En aplicaciones interactivas, el vector normal N es el parámetro de vista que se modifica con mayor frecuencia. Al cambiar sólo la dirección de N, podemos ver una escena desde cualquier dirección excepto a lo largo de la línea de V, sería necesario cambiar la dirección de V. si deseamos simular movimiento de la cámara a través de una escena, podemos mantener fijo N y mover el punto de referencia de vista al rededor (fig. 4-4).

Figura 4-22. Movimiento a través de una escena al cambiar la posición del punto de

Antes de poder proyectar las descripciones de objetos al plano de visión, éstas se deben transferir a coordenadas de vista. La conversión de las descripciones de objetos de coordenadas mundiales a coordenadas de vista equivale a una transformación que superpone el marco de referencia de vista sobre el marco mundial al utilizar las operaciones geométricas básicas de traslación y rotación que se estudiaron en capitulo anterior. 1. Se traslada el punto de referencia de vista al origen del sistema de coordenadas

mundiales. 2. Se aplican rotaciones para alinear los ejes xv, yv y zv con los eje mundiales xw, yw y zw,

de manera respectiva. Si el punto de referencia de vista se especifica en una posición mundial (x0, y0 y z0), se traslada este punto al origen mundial con la matriz de transformación.

referencia de vista. 4.9 Transformación de coordenadas mundiales a coordenadas de vista.

90 Dpl. Ing. Carlos Balderrama Vásquez

Page 23: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

putación

triz de rotación com

Gráfica 91

(4.40) Un método para generar la matriz de transformación y rotación consiste en calcular los vectores unitarios uvn y formar la matriz de rotación compuesta de manera directa, se estudió en la sección anterior dados los vectores N y V, se calculan estos vectores unitarios como.

yv xv v yv x zv yv

zw

w (a) (b) (c)

−−−

=

1000100010001

0

0

0

zyx

T

yw yw yw z v xw zv xv xw xw

zw

z Figura 4-23. alineación de un sistema de vista con los ejes de coordenadas mundiales utilizando una secuencia de transformaciones de traslación y rotación.

*

),,(

321

321

NV

nnnNn ==

N

),,(* uuuNVu ==(4-41)

),,(* 321 vvvunv ==

ste método también ajusta en forma automática la dirección de V de modo que v sea erpendicular a n. La ma puesta para la transformación de vista ntonces es

Epe

Com

Page 24: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

10000321 nnn

=00

321

321

vvvuuu

R

ue transforma u en el eje mundial de x , v en el eje de yw y n en el eje de zw. Por otro la ref xión n ara transformar

sta de do en un sistema mundial de lado derecho.

btiene

M = R . T

coordenadas de los bjetos en la escena para transferirlas al marco de referencia de vista.

Figura 4-24. Representación de los angulos que se forman para proyectar un punto en el espacio.

(4-42)

Q wlado, esta matriz lleva a cabo de manera automática le ecesaria pun sistema de vi lado izquier La transformación completa de coordenadas mundiales a coordenadas de vista se ocomo el producto de matricial wc,vc De esta manera se aplica esta transformación en las descripciones de o

92 Dpl. Ing. Carlos Balderrama Vásquez

Page 25: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

4.10 Proyecciones.

coordenadas undiales de los objetos en una escena, se pueden proyectar los objetos tridimensionales en

man las posiciones de los objetos en el plano de visión a lo rgo de líneas que convergen en un punto que se denomina punto de referencia de

Figura 4-25. Proyección paralela de un objeto hacia el plano de visión.

Plano de visión punto de referencia

de proyección

Figura 4-26. Proyección en perspectiva de un objeto hacia el plano de visión.

ue se proyecta de un objeto se determina al calcular la intersección de las líneas e proyección con el plano de visión.

erva las proporciones relativas de los objetos y éste es el oducir trazos a escala de los objetos tridimensionales. Las

istas exactas de los diversos lados de un objeto se obtienen con una proyección paralela,

na vez que se convierten a coordenadas de vista, las descripciones enUmel plano de visión bidimensional. Existen dos métodos básicos de proyección. En una proyección paralela, como se aprecia en el ejemplo de la fig. 4-7. Para una proyección en

erspectiva (fig. 4-8) se transforplaproyección (o centro de proyección).

Plano de visión P’2

P’1

P’ 2

P’1

a vista qLd Una proyección paralelo cons

étodo que se utiliza para prmvpero ésta no nos ofrece una representación realista del aspecto del objeto tridimensional. Por otro lado, una proyección en perspectiva, genera vistas realistas pero no conserva las proporciones relativas. Las proyecciones de objetos distantes son más pequeñas que las proyecciones de objetos del mismo tamaño, los cuales se encuentran más cerca del plano de proyección (fig. 4-9).

Computación Gráfica 93

Page 26: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

plano de visión

punto de referencia de

igura 4-27 Proyección en perspectiva de objetos del mismo tamaño a diferentes istancias desde el plano de visión.

.11 ccio es elas

a que podemos realizar. En este caso suponemos ue el ojo del observador está lo suficientemente lejos del plano de proyección como para

que las , que n este caso la distancia a la que está el observador no influye en la observación.

paralela es suponer que el observador tiene el plano Y perpendicular a el, de tal forma que proyectar un objeto sobre el plano consiste

Figura 4-28. Representación de un cuadrado en el plano de proyección.

proyección

Fd 4 Proye n Paral . La proyección paralela es la más sencillq

rectas que pasan por los puntos del cuerpo sean todas paralelas entre sí, o seae La forma más sencilla de la proyecciónXsolamente en eliminar la coordenada z de cada punto a pintar.

94 Dpl. Ing. Carlos Balderrama Vásquez

Page 27: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

Ya sabemos como proyectar un punto en la pantalla de nuestro computador, pero como se aza una recta que esta en el espacio?. Tan solo se debe trazar una línea entre los dos untos que ya están proyectados.

o XY es perpendicular al punto de vista por lo cual la royección del cubo será un Cuadrado, o para una figura en especial tendremos lo guiente.

Figura 4-29. proyecciones paralelas considerando los diferentes puntos de vista.

o, dentro de las proyecciones paralelas, podemos utilizar tro método, que es el de la proyección paralela oblicua. Este método consiste en suponer ue el ojo no está en una dirección perpendicular al plano XY, sino que esa “torcido”,

trp Así para trazar un cubo donde el planpsi

Tal como se ve la proyección paralela ortogonal es muy sencilla pero no permite hacer gráficos muy sofisticados. Por elloqinclinado respecto a el.

Computación Gráfica 95

Page 28: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

Dpl. Ing. Carlos Balderrama Vásquez

do un razonamiento geométrico sencillo, podemos deducir que la proyección nada X sobre el Plano XY es

ZOXOZXPX *

−= (

el punto a proyectar y X0, Y0, Z0 las coordenadas del punto de vista, royección.

Figura 4-30. Proyección paralela ortogonal de un cuerpo en el espacio En este caso la formula que nos da el valor del punto sobre el plano XY es un poco más compleja. Primero tenemos que establecer la dirección desde donde vamos a proyectar el punto. Esto hacemos dando las tres coordenadas de un punto cualquiera del espacio cuyo vector de posición desde el origen tenga la misma dirección que la de proyección.

Figura 4-31. Posición del punto de vista

hora utilizane una coorde

Ad

4-43)

iendo X,Y,Zirección de p

Sd

96

Page 29: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

Computación Gráfica

Figura 4-33. Gráfica a representar en el espacio

97

Figura 4-32. Proyección oblicua de los ejes de proyección.

ualmente para la coordenada Y queda.

Ig

ZOYOZYPY *

−= (4-44)

ara proyectar un objeto tridimensional procedemos a crea la siguiente estructura de datos. ue contempla la coordenada x,y,z y un controlador de trazado que toma valores de :

0 para mover a la 1 para trazar o dibujar

PQ

coordenada indicada,

-1 para terminar.

Page 30: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

Lado Color X Y Z 0 0 0 0 0 1 1 100 0 0 2 1 100 0 100 3 1 0 0 100 4 1 0 0 0 5 1 50 100 50 6 1 100 0 0 0 100 0 100 7 1 50 100 50 8 1 0 0 100 -1

4.12 Proyección paralela en los tres planos

ara realizar la proyección en el plano XY se tiene la siguiente ecuación.

(4-45)

ara realizar la proyección en el plano YZ se tiene la siguiente ecuación.

(4-46)

Para realizar la proyección en el plano XZ se tiene la siguiente ecuación.

(4-47)

De acuerdo a la información almacenada se puede generar la siguiente figura.

P

XYYYX

−==

0 P

ZYYYX

−==

0

YX

− ZYX

==

0

98 Dpl. Ing. Carlos Balderrama Vásquez

Page 31: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

4.13 Proyección Conica Prespectiva.

gunas de la as las cosas

gún están mas lejos del observador, por suponer que el ojo está a una distancia ealismo en las escenas

a determinada, D, el plano de proyección, y a partir de este punto trazar rayas que pasen por los vértices del

objeto hasta que corten al plano de proyección donde nos darán las coordenadas del punto a pintar en la pantalla del ordenador.

ua.

El sistema de proyección que hemos utilizado hasta ahora carece de alpropiedades importantes de la visión real, por ejemplo, no hace más pequeñseindeterminada del plano de donde se proyecta. Para conseguir más res que se recurre a la proyección cónica. Este tipo de proyección se basa en suponer que el ojo está a una distancid

Figura 4-34. Proyección Oblic La proyección cónica más sencilla es la que l punto de vista está sobre el eje de las Z a una distancia determinada, y proyectamos sobre el plano XY.

Computación Gráfica 99

Page 32: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

Dpl. Ing. Carlos Balderrama Vásquez

Figura 4-36. Representación del punto de vista para la proyección.

emejanza de triángulos obtenemos la fórmula para proyección de la

Figura 4-35. Representación de un punto que esta en el espacio en el plano de proyección.

ara calcular en este caso las formulas de proyección utilizaremos un razonamiento arecido al que hicimos en el caso de la proyección paralela oblicua. Si nos fijamos en la gura siguiente.

aplicando soordenada X.

Ppfi

Yc

100

Page 33: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

XZD

DPX *−

=

(4-48)

e donde D es la distancia del punto de vista al origen en el eje Z, Z y X son los valores de

bre el plano XY.

Dlas coordenadas del punto a proyectar y PX es el valor de la coordenada X ya proyectadaso Igualmente, para calcular la coordenada Y de la Proyección tenemos.

YZD

DPY *−

= (4-49)

or supuesto, una vez calculados los valores de las coordenadas de la proyección, tenemos ue convertirlos a verdaderos valores sobre la pantalla de nuestro computador, trasladando l centro de la pantalla el origen de coordenadas.

n este tipo de proyección también podemos desplazar el punto de vista de tal manera que proyección resultante sea oblicua, es decir, en vez de que el ojo esté situado sobre el eje puede estar situado en cualquier punto del espacio.

n este caso las fórmulas de proyección que resultan son:

Pqa ElaZ E

OYOYYZD

DPY

OXOXXZD

DPX

+−−

=

+−−

=

)(*

)(* (4-50)

onde X, Y, Z son las coordenadas espaciales del punto Px, Py, las coordenadas del punto proyectado; y OX, OY,

s coordenadas X e Y del punto de vista.

ción cónica oblicua el observador sigue mirando al plano XY de forma erpendicular, pero está desplazado respecto al eje Z las cantidades OX y OY.

.14 Generalización del sistema de Proyección

Podemos con ellos representar un cuerpo desde cualquier vista que nos aginemos, pero con una limitación, en todos los métodos estudiados se ha proyectado

.

D

D , la distancia perpendicular desde el punto de vista al plano XY; la En esta proyecp

4 Ya conocemos los sistemas básicos para representar en la pantalla del computador cuerpos en tres dimensiones.imsobre el plano XY y el punto de vista siempre es al frente del plano XY

Computación Gráfica 101

Page 34: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

Dpl. Ing. Carlos Balderrama Vásquez Dpl. Ing. Carlos Balderrama Vásquez

os es transformar la figura de forma que queda tal y comn que estamos situados.

ulas que resultan de aplicar esta transformación son las siguientes :

Tema 4

102

Para solucionar este problema debemos de va ara poder proyectar sobr cualquier plano, lo q sde ualquier ángulo y posición del espacio.

Figura 4-37. Representación del plano de proyección girado.

= D distancia del observador al plano de proyección

sta solución puede parecer un poco extraña para los que no tengan unos conocimientos de ando un vector

guientes no son

n. Resumiendo, el

ia girando los vectores unitarios del los X, Y, Z, n nuevo sistema de referencia en el cual expresar

ero podemos olvidarnos de esta definición matemática tan estricta considerando que, en el ndo, lo que hacem o la veríamos

esde el punto de vista e

Las fórm

riar ligeramente el enfoque de la solución pe ue nos permitirá poder ver el objeto de

c Primero se tiene que girar el plano de proyección.

Este plano lo vamos a especificar en coordenadas esféricas con un vector perpendicular a el cuyos datos serán: = a ángulo que forma el observador con el plano YZ = b ángulo que forma el observador con el plano ZX Egeometría vectorial, pero con un plano queda perfectamente especificado d

erpendicular a él. De todas formas, si esto o los procesos matemáticos sipentendidos, no es ningún obstáculo para poder realizar el programa de forma correcta, como ya veremos. El paso siguiente es un poco más complicado y consiste en expresar los vectores de cada

no de los vértices en las coordenadas referidas al plano de proyeccióuproceso matemático, para aquellos que quieran investigar por su cuenta consiste en: Establecer un nuevo sistema de referencegún los ángulos A y B, para obtener us

los vectores de posición de los vértices. Pfod

102

Page 35: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales

(4-51)

na ves obtenidos los puntos de transformación de los vértices, lo único que debemos acer es proyectar según las formulas ya desarrolladas.

4.15 Prog

rogram dibijad3;

Z0 =-30;

X:INTEGER;

RECXY= RECORD

XYZ : ARRAY[0..1000] OF RECXYZ;

teta:real;

valor:string[10]; incre:Integer;

nea(x1,y1,x2,y2,c:Integer); var dx,dy,paso,k:Integer; xinc, yinc,x,y:real;

if (dx>dy) then paso:=dx else paso:=dy;

xinc:=dx/paso; yinc:=dy/paso;

)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*

)(*)(*

BSINYBCOSASINXBCOSACOSZZTBSINASINXBSINACOSZBCOSYYT

ASINZACOSXXT

++=−−=

−=

procedure li

Uh

rama Programa en pascal que genera un cuadrado lo recorta con una ventana y rotas por el eje x PUSES CRT, GRAPH; CONST X0 =100; Y0 =50; PunteroY:integer=0; PunteroX:integer=0; PunteroZ:integer=0; Escala:Integer=1; Type RECXYZ=RECORD Y:INTEGER; Z:INTEGER; DIB:INTEGER; END; X:INTEGER; Y:INTEGER; END; AR V XY : ARRAY[0..1000] OF RECXY; I:INTEGER; GD,GM:INTEGER; minx,maxx,miny,maxy:Integer; op:char;

begin dx:=abs(x2-x1); dy:=abs(y2-y1);

Computación Gráfica 103

Page 36: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

if (x1>x2) then xi if (y1>y2) then yi

nc:=xinc*(-1); nc:=yinc*(-1);

x:=x1; y:=y1;

begin nc; ; > minx) and (x < maxx) and (y > miny) and (y < maxy)

putpixel(round(x),round(y),c) lse

(round(x),round(y),8);

R;

B<>-1 DO

].X*Escala+PunteroX; [I].Y*Escala+PunteroY; [I].Z*Escala+PunteroZ; D(GETMAXX DIV 2 + XYZ[I].Y-XYZ[I].X*Y0/X0); D(GETMAXY DIV 2 - XYZ[I].Z-XYZ[I].X*Z0/X0);

;

0*Y0/X0),ROUND(GETMAXY DIV 2 -DIV 2,4);

X DIV 2+200),GETMAXY DIV 2,GETMAXX DIV 2,GETMAXY

IV 2,GETMAXY DIV 2-200,GETMAXX DIV 2,GETMAXY DIV 2,4);

MOVETO(XY[I].X,XY[I].Y) ].x,xy[i-1].y,XY[I].X,XY[I].Y,14);

X');

for k:=1 to paso do x:=x+xi

c y:=y+yin if (x

then

e putpixel delay(0); end; end; PROCEDURE PROYECTABEGIN I:=0; WHILE XYZ[I].DI BEGIN

.X:=XYZ[I XYZ[I] XYZ[I].Y:=XYZ XYZ[I].Z:=XYZ XY[I].X:=ROUN

.Y:=ROUN XY[I] INC(I)

END; END;

JAR; PROCEDURE DIBUvar color:integer; BEGIN LINEa(ROUND(GETMAXX DIV 2 -20

ETMAXX DIV 2,GETMAXY 200*Z0/X0),G LINEa(ROUND(GETMAXDIV 2,4); LINEa(GETMAXX D I:=0;

HILE XYZ[I].DIB<>-1 DO W BEGIN

N IF XYZ[I].DIB=0 THE ELSE LINEa(xy[i-1

INC(I); END; REP SSED; EAT UNTIL KEYPREEND; PROCEDURE LLENAR; BEGIN I:=-1; REPEAT INC(I); NA WRITE('COORDE READLN(XYZ[I].X); WRITE('COORDENA Y'); READLN(XYZ[I].Y); WRITE('COORDENA Z');

104 Dpl. Ing. Carlos Balderrama Vásquez

Page 37: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales READLN(XYZ[I].Z); R ');

N(XYZ[I].DIB); TIL XYZ[I].DIB = -1;

D;

].x:=0; xyz[1].y:=0; xyz[1].z:=0; xyz[1].dib:=0; .y:=0; xyz[2].z:=0; xyz[2].dib:=1;

].x:=100; xyz[3].y:=100; xyz[3].z:=0; xyz[3].dib:=1; yz[4].z:=0; xyz[4].dib:=1; yz[5].z:=0; xyz[5].dib:=1; yz[6].z:=100; xyz[6].dib:=1;

7].dib:=1; 8].dib:=1;

=0; xyz[9].y:=100; xyz[9].z:=100; xyz[9].dib:=0; 10].x:=100; xyz[10].y:=100; xyz[10].z:=100;

].dib:=1; xyz[11].y:=100; xyz[11].z:=0;

z[12].x:=100; xyz[12].y:=100; xyz[12].z:=100;

[13].z:=100;

].x:=100; xyz[14].y:=0; xyz[14].z:=0;

5].x:=100; xyz[15].y:=0; xyz[15].z:=100;

6].x:=0; xyz[16].y:=0; xyz[16].z:=100;

z[17].dib:=-

URE ROTARZ; R X,Y,Z:REAL;

[I].dib<>-1 DO

[I].y*SIN(TETA); XYZ[I].y*COS(TETA);

DIV 2 +PunteroX+ Y-X*Y0/X0); V 2 +PunteroY- Z-X*Z0/X0);

END;

WORD;

;

WRITE('DIBUJA READL UNENprocedure datos; begin xyz[1 xyz[2].x:=100; xyz[2] xyz[3 xyz[4].x:=0; xyz[4].y:=100; x xyz[5].x:=0; xyz[5].y:=0; x xyz[6].x:=0; xyz[6].y:=0; x xyz[7].x:=0; xyz[7].y:=100; xyz[7].z:=100; xyz[ xyz[8].x:=0; xyz[8].y:=100; xyz[8].z:=0; xyz[ xyz[9].x: xyz[xyz[10 xyz[11].x:=100;xyz[11].dib:=1; xyxyz[12].dib:=0; xyz[13].x:=100; xyz[13].y:=0; xyzxyz[13].dib:=1; xyz[14xyz[14].dib:=1; xyz[1xyz[15].dib:=0; xyz[1xyz[16].dib:=1; xyz[17].x:=0; xyz[17].y:=0; xyz[17].z:=0; xy1; end; PROCEDVA I:WORD; BEGIN I:=0; WHILE xyz BEGIN X:=XYZ[I].x*COS(TETA)-XYZ Y:=XYZ[I].x*SIN(TETA)+ Z:=XYZ[I].z; XY[I].x:=ROUND(GETMAXX XY[I].y:=ROUND(GETMAXY DI INC(I); END; PROCEDURE ROTARX; VAR X,Y,Z:REAL; I:BEGIN I:=0 WHILE xyz[I].dib<>-1 DO BEGIN

Computación Gráfica 105

Page 38: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

Y:=XYZ[I].y*COS(TETA)-XYZ[I].z*SIN(TETA); Z:=XYZ[I].y*SIN(TETA)+XYZ[I].z*COS(TETA); X:=XYZ[I].x; XY[I].x:=ROUND(GETMAXX DIV 2 +PunteroX+ Y-X*Y0/X0); XY[I].y:=ROUND(GETMAXY DIV 2 +PunteroY- Z-X*Z0/X0); INC(I); END; END; PROCEDURE ROTARY;

SIN(TETA)+XYZ[I].x*COS(TETA);

ND(GETMAXX DIV 2 +PunteroX+ Y-X*Y0/X0);

GIN

ENAR;}

4; maxy:=4;

ardevice; rectangle(minx,miny,maxx,maxy);

str(incre:2,valor); y(2,10,'Incremento '+valor);

R; :=readkey;

if op=#72 then begin

y-incre; maxy:=maxy-incre;

end; if op=#75 then

begin minx:=minx-incre;

maxx:=maxx-incre;

VAR X,Y,Z:REAL; I:WORD; BEGIN I:=0; WHILE xyz[I].dib<>-1 DO BEGIN Z:=XYZ[I].z*COS(TETA)-XYZ[I].x*SIN(TETA); X:=XYZ[I].z* Y:=XYZ[I].y; XY[I].x:=ROU XY[I].y:=ROUND(GETMAXY DIV 2 +PunteroY- Z-X*Z0/X0); INC(I); END; END; BE incre:=10; teta:=1; CLRSCR; { LL datos; minx:=1; miny:=1; maxx:= DETECTGRAPH(GD,GM); INITGRAPH(GD,GM,'e:\LENGUAJE\bP\BGI'); PROYECTAR; DIBUJAR; repeat cle outtextx DIBUJA op miny:=min end; if op=#80 then begin miny:=miny+incre; maxy:=maxy+incre;

106 Dpl. Ing. Carlos Balderrama Vásquez

Page 39: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Transformaciones geométricas tridimensionales end;

if op=#77 then begin

x+incre; maxx:=maxx+incre;

-' then incre:=incre-1;

upcase(op)='X' then maxx:=maxx+incre; if upcase(op)='Y' then maxy:=maxy+incre;

if upcase(op)='Z' then maxx:=maxx-incre; if upcase(op)='U' then maxy:=maxy-incre;

if upcase(op)='R' then begin cleardevice;

TETA:=teta+pi/16; rotary; dibujar;

rectangle(minx,miny,maxx,maxy); end;

minx:=min end; if op='+' then incre:=incre+1; if op=' if incre < 1 then incre:=1; if incre > 100 then incre:=10; if until op=#13; closegraph; END.

Computación Gráfica 107

Page 40: TRANSFORMACIONES GEOMETRICAS … geométricas tridimensionales A los parámetros tx, ty y tz que especifican las distancias de traslación para las direcciones e las coordenadas x,

Tema 4

108 Dpl. Ing. Carlos Balderrama Vásquez