Sunteți pe pagina 1din 11

III REPEM Memorias

Santa Rosa, La Pampa, Argentina, Agosto 2010

CB 09 TRANSFORMACIONES PLANAS CON MATLAB: SEMEJANZA DE FIGURAS A TRAVS DE TRANSFORMACIONES EN EL PLANO COMPLEJO Y MEDIANTE ANLISIS MATRICIAL Nstor THOME Departamento de Matemtica Aplicada - Instituto de Matemtica Multidisciplinar Universidad Politcnica de Valencia - Espaa njthome@mat.upv.es Nvel Educativo: Educacin Polimodal (Nivel Medio), Educacin Superior, Postgrado. Palabras Clave: Transformaciones, semejanzas, plano complejo, matrices, MATLAB.

RESUMEN Los movimientos en el plano pueden utilizarse como aplicaciones geomtricas de otros temas. En este trabajo se plantean dos enfoques que se pueden dar, bsicamente, sobre la semejanza de figuras planas, tema que en s mismo puede analizarse segn su carcter geomtrico. Uno de estos enfoques se desarrolla mediante un anlisis a travs del plano complejo y el otro considerando la teora del anlisis matricial. Tablas comparativas presentan la relacin entre ambos enfoques. Por otra parte, el programa MATLAB opera por defecto con nmeros complejos y permite realizar operaciones con vectores y matrices, adems de representaciones grficas de alta calidad. De esta manera, se utiliza dicho programa para proponer a los profesores una prctica que puede ser realizada por los alumnos una vez que todos los conocimientos hayan sido impartidos. En dicha prctica, que se realizar mediante la utilizacin de las TICs, se unifican conocimientos, se fijan conceptos y se integran distintos temas que el alumno generalmente aprende en etapas diferentes de su formacin. Todo esto se lleva a cabo de una manera grfica, sencilla y se puede desarrollar con una gran dosis de intuicin lo que, en general, capta la atencin del alumno y aumenta su motivacin al tratarse de aplicaciones directas de la teora.

INTRODUCCIN Los temas de transformaciones en el plano y semejanza de figuras planas se han estudiado en el Bachillerato desde un punto de vista puramente geomtrico. Por otra parte, tambin se han estudiado los nmeros complejos tan slo desde el punto de vista binmico, ver Ministerio de Cultura y Educacin (1997). Ms tarde, los nmeros complejos se vuelven a ver en alguna asignatura de primer curso de la universidad, completando aqu el tema de modo que se aade la forma polar y las operaciones que esta representacin permite realizar. Adems, en alguna asignatura de lgebra Lineal de primer ao de la universidad se estudia el tema de transformaciones lineales. Por otra parte, en las carreras donde se abordan cursos de Anlisis Matemtico superior el tema de nmeros complejos vuelve a aparecer, ahora como introduccin a un curso de Funciones de Variable Compleja. En otro orden de cosas, la utilizacin del ordenador en el aula es un tema recurrente en numerosos congresos, revistas especializadas y diferentes foros en los que se trata el tema enseanza-aprendizaje de la Matemtica a travs de las TICs. MATLAB, es un paquete informtico que muchos profesores utilizan en la elaboracin e imparticin de sus clases dado
365

III REPEM Memorias

Santa Rosa, La Pampa, Argentina, Agosto 2010

que, entre otras cosas, presta facilidades a la hora de realizar grficas de gran calidad adems de su potencia cientfica, flexibilidad, interactividad, transparencia, etc. Para una introduccin a MATLAB puede consultarse el libro de Pratap (2006). En este artculo se hace una aplicacin mediante la utilizacin de MATLAB versin 7.1 en la que se muestra cmo las semejanzas de figuras planas, los nmeros complejos y la teora de matrices pueden unificarse en un mismo entorno de manera que el alumno consiga una visin integrada y globalizada de estos temas. De hecho, se incluyen tablas comparativas que presentan la relacin entre ambos enfoques. La prctica consiste en que el alumno desarrolle los ficheros.m por s mismo tras haber tratado el tema con suficiente detalle, o bien indicando los pasos a seguir mediante una gua que se le entregue. Otra modalidad puede ser que el profesor muestre el contenido de las funciones.m al alumno y las ejecute en MATLAB de modo que se vea el resultado que se puede obtener con los conocimientos adquiridos. Esta ltima modalidad se puede realizar si el alumno no tiene suficientes conocimientos informticos. Al anlisis de las semejanzas de figuras planas se agregan los casos de proyecciones y simetras.
Anlisis de los diferentes enfoques

Un tratamiento puramente geomtrico de los movimientos en el plano mediante las definiciones de traslacin, rotacin, homotecia y semejanza y la forma de determinarlas a partir de regla y transportador es el primer contacto que generalmente un alumno tiene con este tema. Esta es la forma clsica en que se presenta el mismo y no ahondaremos en ella por ser la ms conocida. En este trabajo se analizar otro enfoque. Para ello, consideremos en el plano eucldeo un origen O y unos ejes rectangulares Ox y Oy. Sean e1 y e2 los vectores de la base ortonormal correspondiente. Entonces, es conocido que entre el cuerpo de los nmeros complejos (considerado como espacio vectorial real de dimensin 2 y base 1, i ) y el espacio vectorial de los vectores libres del plano E2 existe un isomorfismo definido por la aplicacin : E2 tal que ( x iy ) xe1 ye2 . Se llama afijo del nmero complejo z x iy al vector de origen O y extremo el punto P de coordenadas ( x, y ) , con lo cual la imagen de z por la biyeccin anterior es el vector v OP , siendo P el afijo de z , ver por ejemplo Arves (1999). Por tanto se usarn indistintamente los trminos: nmero complejo, vector o punto del plano. Por otra parte, las transformaciones elementales en el plano eucldeo pueden ser analizadas a travs del significado geomtrico de las operaciones en el cuerpo complejo. Se observa que estas operaciones se pueden definir como: Traslacin segn la direccin z0 : w z z0 . Rotacin de centro el origen y ngulo (antihorario): w arg( z0 ) . Homotecia de centro el origen y razn k: w kz con k Semejanza de centro el origen, razn k y ngulo k | z0 | y arg( z0 ) .
z0 z con | z0 | 1 y

. (antohorario): w

z0 z con

Para su representacin grfica en el plano complejo es posible notar que en una traslacin los puntos z del plano se trasladan | z0 | unidades en el sentido del nmero complejo z0 (pensado como vector). En una rotacin, los puntos z del plano giran alrededor del origen un ngulo arg( z0 ) en sentido antihorario. Por otra parte, como | z0 | 1 , las rotaciones evidentemente no
366

III REPEM Memorias

Santa Rosa, La Pampa, Argentina, Agosto 2010

cambian el mdulo del nmero complejo transformado. Adems, si k 1 , las figuras transformadas por las homotecias se dilatan y si 0 k 1 , se contraen, ambas en la direccin del vector z . En el caso de las semejanzas se realiza una homotecia de centro el origen y razn | z0 | seguida de un giro de centro el origen y ngulo arg( z0 ) en sentido antihorario. La Tabla 1 resume las operaciones anteriores donde c:=cos( ) y s:=sen( ) .
Transformacin T R H S

2 2 ( x, y) ( x ', y ') ( x, y) ( x ', y ') ( x, y) ( x ', y ') ( x, y) ( x ', y ')

( x, y) (a, b) ( xc ys, xs yc) k ( x, y) k ( xc ys, xs yc)

z w z (a bi )

z w ei z z w kz

z w kei z

Tabla 1. Transformaciones del plano en s mismo: traslacin (T), rotacin (R), homotecia (H) y semejanza (S)

Ms concretamente, puede observarse que la multiplicacin de un nmero complejo arbitrario (no nulo) por el nmero complejo de mdulo k y argumento , es decir por el nmero complejo kei , donde ei : cos( ) isen( ) , consiste en hacer un giro (de centro el origen y ngulo en sentido antihorario) seguido de una homotecia (de centro el origen y razn k ). Las aplicaciones anteriores permiten definir la transformacin f : dada por z w z1 z z2 con z1 , z2 fijos. Esta transformacin se puede considerar como la composicin de una traslacin de vector z2 , seguida de un giro (alrededor del origen) de ngulo arg( z1 ) en sentido antihorario y una homotecia de (centro el origen y) razn | z1 | . En MATLAB, por ejemplo para representar grficamente el nmero complejo z 1 3i , puede escribirse:
Representacin de z = 1 + 3 i Representacin de z = 1 + 3 i 4 3

>> >> >> >> >> >> >> >> >> >> >> >>

z=1+3i; subplot(1,2,1) plot(z,'*') xlabel('Eje real') ylabel('Eje imaginario') title('Representacin de z = 1 + 3 i') subplot(1,2,2) axis; hold compass(z) xlabel('Eje real') ylabel('Eje imaginario') title('Representacin grfica de z = 1 + 3 i')

3.8 3.6 3.4 2.5

Eje imaginario

3 2.8 2.6 2.4 2.2 2

Eje imaginario
0 0.5 1 Eje real 1.5 2

3.2

1.5

0.5

0.5 Eje real

1.5

Figura 1. Dos representaciones del nmero z

1 3i

Por otra parte, la siguiente lista de comandos permite manipulaciones algebraicas con nmeros complejos: real(z), imag(z), conj(z), abs(z), angle(z), con las que se puede calcular su parte real, parte imaginaria, conjugado, mdulo y argumento, respectivamente. Se recuerda que MATLAB opera por defecto con nmeros complejos. A continuacin se proponen programas en MATLAB que permitirn al profesor mostrar al alumno diferentes ejemplos construidos de manera sencilla. Primero se introduce en MATLAB el polgono sobre el que se harn las transformaciones mediante los nmeros complejos correspondientes y se realiza su representacin grfica como puede apreciarse en la Figura 2. Esto puede realizarse como sigue:

367

III REPEM Memorias >> >> >> >> >> >> >> >> >> axis z=[1+i, -1+3i, -2-2i, -i, 2-4i]; hold plot([z,z(1)],'r') axis equal grid xlabel('Eje real') ylabel('Eje imaginario') title('Polgono a transformar')
3

Santa Rosa, La Pampa, Argentina, Agosto 2010


Polgono a transformar

Eje imaginario

-1

-2

-3

-4

-4

-3

-2

-1

0 Eje real

Figura 2. Polgono original sobre el que se aplicarn las transformaciones

En el primero de los programas es necesario indicar como parmetros de entrada los nmeros complejos que sirven como coordenadas del polgono (regular o no) que se va a trasladar, y tambin el nmero complejo que sirve como vector de direccin segn el cual se realizar la traslacin. El resultado de trasladar la Figura 2 original segn el vector z0 4 2i puede apreciarse en la Figura 3.
Traslacin segn vector z = 4+2i

function traslacion(z, z0)

4 w = z+z0; plot([z,z(1)],'r') 3 axis equal 2 hold on plot([w,w(1)],':b') 1 compass(z0,'k') 0 xlabel('Eje real') ylabel('Eje imaginario') -1 title(['Traslacin segn vector z_0 = ', -2 num2str(z0)]) grid on -3 hold off
Eje imaginario

end >> traslacion(z, 4+2i)

-4

-3

-2

-1

2 Eje real

Figura 3. Traslacin segn vector z

2i

La segunda funcin de MATLAB permitir realizar giros. Se llama giros.m y requiere como parmetro de entrada el ngulo (en radianes) adems de los nmeros complejos que determinan el polgono al que le realizar la rotacin. El resultado de ejecutarla se aprecia en la Figura 4.
function giros(z, alpha) w = (cos(alpha)+i*sin(alpha))*z; plot([z,z(1)],'r') hold on axis equal plot([w,w(1)],':b') grid xlabel('Eje real') ylabel('Eje imaginario') title(['Giro alrededor del origen de ngulo \alpha = ', num2str(alpha) ' radianes']) hold off end >> giros(z, pi/2)
Giro alrededor del origen de ngulo 3 = 1.5708 radianes 2

1
Eje imaginario

-1

-2

-3

-4

-3

-2

-1

0 1 Eje real

Figura 4. Rotacin alrededor del origen (antihorario) un ngulo de


2

radianes

368

III REPEM Memorias

Santa Rosa, La Pampa, Argentina, Agosto 2010

En caso de ser necesario se puede introducir el ngulo en grados sexagesimales, hacer la conversin a radianes dentro del programa (antes de calcular el transformado w ) y realizar la correspondiente modificacin en el ttulo de la grfica. La tercera funcin permite realizar homotecias. Se llama homotecia.m y requiere como parmetros de entrada el valor de la razn adems de los nmeros complejos que determinan el polgono a transformar. El resultado se muestra en la Figura 5.
function homotecia(z, k) w = k*z; plot([z,z(1)],'r') hold on axis equal plot([w,w(1)],':b') grid xlabel('Eje real') ylabel('Eje imaginario') title(['Homotecia de razn k = ', num2str(k)]) hold off end >> homotecia(z, 3)
Homotecia de razn k = 3 8 6 4 2
Eje imaginario

0 -2 -4 -6 -8 -10 -12 -10 -5 0 Eje real 5 10

Figura 5. La imagen original es la de trazo lleno y la transformada la de lnea de puntos

Por ltimo, el siguiente fichero de MATLAB permite realizar semejanzas segn los elementos indicados: ngulo y razn, adems de los nmeros complejos que determinan el polgono del que se calcular su semejante. En la Figura 6 puede apreciarse el resultado de ejecutar esta funcin.
function semejanza(z, alpha, k) w = k*(cos(alpha)+i*sin(alpha))*z; plot([z,z(1)],'r') axis equal hold on plot([w,w(1)],':b') grid axis equal xlabel('Eje real') ylabel('Eje imaginario') title(['Semejanza de razn k = ', num2str(k) ' y ngulo ', num2str(alpha) ' radianes']) hold off end >> semejanza(z, pi/2, 3)
8 6 4 2 0 -2 -4 -6 -8 -8 -6 -4 -2 0 2 Eje real 4 6 8 10 12 Semejanza de razn k = 3 y ngulo 1.5708 radianes

Eje imaginario

Figura 6. Semejanza de razn k

3 y ngulo
2

radianes

Es un ejercicio sencillo, a partir de los ficheros anteriores, realizar uno nuevo llamado semejanza_mas_traslacion.m de modo que permita realizar una semejanza segn los elementos indicados seguida de una traslacin. Una aplicacin de todos los conceptos anteriores se encuentra en la grfica de la Figura 8 en la que se aprecia una noria. Es posible animarla de manera que se la vea girando, gente trasladndose hacia ella y cambiando su tamao dependiendo de la perspectiva. La forma de construir la noria es la siguiente. Para comenzar se pueden construir por separado diferentes
369

III REPEM Memorias

Santa Rosa, La Pampa, Argentina, Agosto 2010

funciones: una de ellas con una cesta, otra con un nio, otra con el camino, etc. Luego se genera otra una con la estructura general y se realiza su animacin mediante bucles. El cdigo de todas estas funciones no se incluye a continuacin sino que se detalla en el Anexo por cuestiones didcticas. Otro enfoque de las transformaciones anteriormente tratadas es mediante un anlisis matricial como puede verse en Leon (1994). Adems, MATLAB est especialmente diseado para operar con matrices.
Transformacin Traslacin Rotacin Homotecia Semejanza

2x1 2x1 x x' y y'


x x' y y' x x' y y' x x' y y'

x y

a b x y

z w z (a bi )

cos( ) -sen( ) sen( ) cos( ) k k x y cos( ) -sen( ) sen( ) cos( )

z w ei z
z w kz
x y

z w kei z

Tabla 2. Transformaciones del plano en s mismo: aspectos matricial y complejo

La Tabla 2 resume las operaciones anteriormente definidas y establece una comparativa con las introducidas en el caso de su tratamiento segn la teora de matrices. Finalmente, siguiendo este punto de vista, se disea una funcin en MATLAB combinando los conceptos algebraicos y geomtricos descritos anteriormente para resolver, directamente, el problema de semejanza con traslacin que contiene como casos particulares al de rotacin y homotecias (adems del de traslacin, como es evidente). Al introducir en la lnea de comandos de MATLAB lo siguiente:
>> x=[1 -1 -2 0 2]; >> y=[1 3 -2 -1 -4]; >> semejanza_con_matrices(x, y, pi/2, 3, 2, 4)

se obtiene la Figura 7 utilizando la funcin:


function semejanza_con_matrices(x, y, alpha, k, x0, y0) u0 = [x0*ones(1,length(x)); y0*ones(1,length(y))]; u = k*[cos(alpha), -sin(alpha); sin(alpha), cos(alpha)] * [x; y] + u0; plot([x,x(1)],[y,y(1)],'r') hold on plot([u(1,:),u(1,1)],[u(2,:),u(2,1)]) compass(x0+i*y0,'k') xlabel('Abscisas') ylabel('Ordenadas') title('Polgono a transformar y polgono transformado') grid axis equal hold off end
Polgono a transformar y polgono transformado 10

Ordenadas

-5 -6 -4 -2 0 2 4 Abscisas 6 8 10 12 14

Figura 7. Polgono original y su semejante

370

III REPEM Memorias

Santa Rosa, La Pampa, Argentina, Agosto 2010

Otras transformaciones: Proyecciones y simetras Otras dos aplicaciones geomtricas de los nmeros complejos y del anlisis matricial son la proyeccin ortogonal y las simetras. Pueden definirse como se indica en la Tabla 3. Transformacin Proyeccin sobre eje X Proyeccin sobre eje Y Simetra con respecto al origen Simetra con respecto al eje X Simetra con respecto al eje Y

2x1 2x1 x x' y y'


x x' y y' x x' y y' x x' y y' x x' y y'

x 0 0 y x y x y x y

1 ( z z) 2 1 ( z z) 2i

z w Re( z ) z w Im( z )
zw z

zw
zw

z
z

Tabla 3. Definiciones de proyecciones ortogonales y simetras

Observar que si en las homotecias se permiten valores de k 0 , las simetras con respecto al origen se consiguen tomando k 1 . Tambin se puede notar que hacer una simetra con respecto al eje Y puede pensarse como una simetra respecto al eje X seguida de otra con respecto al origen. Notar que tambin es posible generalizar las transformaciones anteriores en el sentido que en lugar de realizarlas en torno al origen, se las realice en torno a otro punto. Por ejemplo, una rotacin con centro en el punto (a, b) y ngulo radianes (antihorario) puede realizarse mediante: z w ( a bi ) ei ( z ( a bi )) Una homotecia con centro en (a, b) y razn k puede realizarse mediante:

z w (a bi ) k ( z (a bi ))
La proyeccin de un nmero complejo z sobre la recta que pasa por los puntos P0 P ( x1 , y1 ) puede realizarse mediante: 1
( x0 , y0 ) y

zw

z0 ei Re(e

( z z0 ))

P0 . siendo z0 x0 iy0 y el ngulo que determina el eje X (positivo) con el vector O , P 1 En efecto, una traslacin de los puntos P0 , P1 y z permite escribir P0 ' P0 P0 O y P P P0 igual que z ' z z0 y w ' w z 0 . Definiendo como el ngulo que forma el 1' 1 eje X con el vector P '0 P '1 se tiene que una rotacin de ngulo permite escribir:

P0 '' e i P0 ' , P ei P e i z ' y w '' e i w ' . Estas transformaciones han llevado el 1 '' 1 ' , z '' problema al indicado en la tabla con lo que w'' Re( z '') . Deshaciendo los cambios se tiene e i ( w z0 ) e i w ' w '' Re( z '') Re(e i z ') Re(e i ( z z0 )) . Luego, se obtiene el
transformado w

z0 ei Re(e i ( z z0 )) , como se ha indicado.


371

III REPEM Memorias

Santa Rosa, La Pampa, Argentina, Agosto 2010

Finalmente, la simetra de un nmero complejo z con respecto de la recta que pasa por los puntos ( x0 , y0 ) y ( x1 , y1 ) puede realizarse mediante:
zw z0 e2i ( z z0 )

y se puede deducir realizando transformaciones similares a las anteriores. En este caso: e i ( w z0 ) e i w ' w '' z '' e i z ' e i ( z z0 ) ei ( z z0 ) . Tambin la homotecia puede presentarse de manera ms general definida mediante
zw k1 Re( z ) ik2 Im( z )

con k1 , k2

0,

de forma que permita escalar el dibujo de manera diferente en cada una de las dos direcciones. Es evidente que para estos tipos de transformaciones se pueden realizar programas semejantes a los anteriores.

CONCLUSIONES Las semejanzas en el plano que un alumno ha estudiado pueden ser reinterpretadas a partir de conceptos adquiridos con posterioridad. De esta manera se puede realizar una integracin de los conocimientos y una mayor solidez en cuanto a la base que el alumno, el ayudante de ctedra o incluso el profesor pueden disponer a la hora de relacionar conocimientos entre s. Estas situaciones pueden aparecer cuando en un curso de lgebra Lineal se habla de matrices y aplicaciones lineales o bien cuando en un curso de Variable Compleja se haga la presentacin de las operaciones bsicas con nmeros complejos y la representacin grfica de las mismas. De hecho la funcin compleja lineal

f ( z) az b, a, b , a 0
se puede describir como la composicin de una rotacin de ngulo Arg (a) alrededor del origen, una homotecia de razn || a || y una traslacin en la direccin del nmero complejo b . Notar que si bien se habla de funcin lineal cuando se la estudia en un curso de Variable Compleja, ver por ejemplo Zill (2003), cuando se la define en un curso de lgebra Lineal se dice que es lineal slo cuando b 0 , ver por ejemplo Leon (1994). El programa MATLAB le da al profesor herramientas para mostrar al alumno de manera rpida y sencilla algunas situaciones grficas a partir de funciones elementales generadas mediante ficheros.m y con las que l pueda generar sus propias grficas con posterioridad. REFERENCIAS MINISTERIO DE CULTURA Y EDUCACIN. (1997). Provincia de La Pampa. Materiales curriculares. Tercer Ciclo EGB. Matemtica, Argentina. ARVES, J. LVAREZ, R., MARCELLN, F. 1999. lgebra Lineal y Aplicaciones (Sntesis). LEON, S. J. 1994. Linear Algebra with Applications (Prentice Hall). ZILL, D. G., SHANAHAN, P. D. 2003. A first course in complex analysis with applications (John and Bartlett). PRATAP, R. 2006. Getting Started with MATLAB7 (Oxford University Press).
372

III REPEM Memorias

Santa Rosa, La Pampa, Argentina, Agosto 2010

Anexo

A continuacin se detalla el cdigo de las funciones utilizadas en MATLAB para el clculo de los elementos y de la animacin de la noria introducida anteriormente como un ejemplo de utilizacin de los conceptos presentados. La Figura 8 muestra el resultado obtenido.
% Funcion 'cesta': genera el dibujo de una cesta de la noria function cesta (origen, escala, rotacion, color) CESTA = [-1/2-i/2, 0+0*i, 1/2-i/2, -1/2-i/2, -1/2-3*i/2, 1/2-3*i/2, 1/2-i/2]; rot = cos(rotacion) + sin(rotacion) * i; CESTA = (escala * CESTA) * rot + origen; plot(CESTA, color) end % Funcion 'estructura': genera el dibujo de la estructura circular de la noria con todos sus elementos interiores function estructura (origen, escala, radio, num_vertices, rotacion, color) E = 1/2; % Escala de las cestas t = 0:(2*pi)/num_vertices:2*pi; vertices = escala * radio * (cos(t) + sin(t) * i); vertices = vertices * (cos(rotacion) + sin(rotacion) * i); vertices_trasladados = origen + vertices; plot(vertices_trasladados, color) interior = 3/4 * vertices; interior_trasladado = origen + interior; plot(interior_trasladado, color) for k=1:num_vertices plot([origen, vertices_trasladados(k)],color) cesta(vertices_trasladados(k), escala * E, (rotacion/pi/16) * (angle(vertices(k))), 'k') end end % Funcion 'noria': genera el dibujo de la noria con todos sus elementos function noria (origen, escala, num_cestas, radio, step) T = 1.25 * [0+0*i, radio/2-radio*i, -radio/2-radio*i, 0+0*i]; % Base de la noria estructura(origen, escala, radio, num_cestas, step, 'm'); plot((origen + escala*T), 'b') end % Funcion 'cabeza': genera el dibujo de la cabeza del ninyo function cabeza (origen, radio) num_vertices = 20; t = 0:(2*pi)/num_vertices:2*pi; vertices = radio * (cos(t) + sin(t) * i); vertices_trasladados = origen + vertices; plot(vertices_trasladados, 'b') end

373

III REPEM Memorias

Santa Rosa, La Pampa, Argentina, Agosto 2010

% Funcion 'ninyo': genera el dibujo de un ninyo que camina function ninyo (origen, escala) Z = [-1/2-i/2, 0+0*i, 1/2-i/2, 0+0*i, 0+i, -1/3+i/2, 0+i, 1/3+i/2, 0+i, 0+5*i/4]; Z = (escala * Z); Z = Z + origen; plot(Z, 'b') cabeza(origen + escala *(0+6/4*i), (1/4)*escala) end % Funcion 'camino': genera el dibujo del camino y de un ninyo que camina function camino (origen, destino, ancho, escala, step) PROF = 1/3; % Profundidad del camino derecha_camino_origen = origen + ancho*escala; derecha_camino_destino = destino + PROF*ancho*escala; centro_camino_origen = origen + (derecha_camino_origen - origen)/2; centro_camino_destino = destino + (derecha_camino_destino - destino)/2; vector_camino = centro_camino_destino - centro_camino_origen; plot([origen, destino], 'g') plot([derecha_camino_origen, derecha_camino_destino], 'g') ninyo(centro_camino_origen + vector_camino*step, escala*(1-step*2*PROF)*1/2); end % Funcion 'escena': define las dimensiones de cada elemento y genera la animacion de todo el conjunto function escena MAX_TIME_ESCENA_SEG = 20; PAUSE_ESCENA = 0.15; NUM_CESTAS = 20; RADIO = 5; O = 5+6*i; E = 1/3; C1 D1 A1 E1 V1 C2 D2 A2 E2 V2 = = = = = = = = = = 0+0*i; 4+3.5*i; 2; 1; 1/64; 8+1*i; 6+3*i; 2; 1/2; 1/80; % Segundos de duracin de la escena % Segundos de pausa de la animacin % % % % % % % % % % % % % % Numero de cestas de la noria Radio de la noria Origen de la noria Escala de la noria Origen del camino 1 Destino del camino 1 Ancho del camino 1 Escala del camino 1 Velocidad en camino 1 Origen del camino 2 Destino del camino 2 Ancho del camino 2 Escala del camino 2 Velocidad en camino 2

camino1_step = 0; camino2_step = 0; noria_step = 0; axis equal axis tight

374

III REPEM Memorias

Santa Rosa, La Pampa, Argentina, Agosto 2010

for k=0:PAUSE_ESCENA:MAX_TIME_ESCENA_SEG cla camino(C1, D1, A1, E1, camino1_step); camino1_step = camino1_step + V1; if (camino1_step > 1) camino1_step = 0; end camino(C2, D2, A2, E2, camino2_step); camino2_step = camino2_step + V2; if (camino2_step > 1) camino2_step = 0; end noria(O, E, NUM_CESTAS, RADIO, noria_step); noria_step = noria_step + (2*pi)/(9*NUM_CESTAS); if (noria_step > 2*pi) noria_step = 0; end hold on pause(PAUSE_ESCENA); end end

Figura 8. Dos nios de camino hacia una noria

375

S-ar putea să vă placă și