{VERSION 5 0 "IBM INTEL NT" "5.0" }
{USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 
1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 
0 0 1 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }
{CSTYLE "LaTeX" -1 32 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 
-1 257 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 
0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 
"Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 
}{PSTYLE "Heading 1" -1 3 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 
2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 2" -1 
4 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 
0 8 2 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 3" -1 5 1 {CSTYLE "" -1 -1 "Ti
mes" 1 12 0 0 0 1 1 1 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }
{PSTYLE "Maple Plot" -1 13 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 
2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Title" -1 18 
1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 1 2 2 2 1 1 1 1 }3 1 0 0 
12 12 1 0 1 0 2 2 19 1 }{PSTYLE "Author" -1 19 1 {CSTYLE "" -1 -1 "Tim
es" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 8 8 1 0 1 0 2 2 0 1 }
{PSTYLE "Heading 1" -1 256 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 1 2 
1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 }}
{SECT 0 {EXCHG {PARA 18 "" 0 "" {TEXT -1 43 "Movimentos no plano  e  o
peradores lineares" }}{PARA 19 "" 0 "" {TEXT -1 18 "Yolanda K S Furuya
" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 391 "No p
lano e no espa\347o, parte dos movimentos pode ser descrita como um tr
ansforma\347\343o linear do plano no plano ( ou do espa\347o no espa
\347o), tamb\351m chamdo operador linear do plano (ou do espa\347o). N
a verdade, todo movimento r\355gido se escreve como composi\347\343o d
e transla\347\365es com transforma\347\365es lineares. Al\351m disso, \+
utilizando coordenadas homog\352neas, at\351 as transla\347\365es vira
m transforma\347\365es lineares." }{TEXT 32 0 "" }}{PARA 0 "" 0 "" 
{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "with(linalg
): #carregando o pacote de Algebra Linear" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 53 "with(plots): #carregando um pacote basico de grafic
os" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 95 "figura[0] := [[0,0],[
1,0],[1,2]]: # vertices de um triangulo para serem aplicados os movime
ntos" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "plotfigura[0] := po
lygonplot( figura[0], color=yellow): # plot da figura acima, original.
" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 28 "Movimentos r\355gidos do pla
no " }{TEXT 257 28 "(sem coordenadas homog\352neas)" }}{PARA 4 "" 0 "
" {TEXT -1 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 32 "1. Transla\347
\343o segundo um vetor v" }}{EXCHG {PARA 4 "" 0 "" {TEXT -1 0 "" }}
{PARA 0 "" 0 "" {TEXT -1 81 "      Fixado o vetor v, a transla\347\343
o segundo v associa a cada ponto P o ponto P+v" }}{PARA 0 "" 0 "" 
{TEXT -1 20 "            P -> P+v" }}{PARA 0 "" 0 "" {TEXT -1 70 "    \+
  Se v \351 n\343o nulo, a tranla\347\343o n\343o \351 linear, pois O \+
vai em O+v = v" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "tau := (v
,P) -> convert(evalm(P+v),list); " }{TEXT -1 35 "fun\347\343o que a ca
da v e P associa P+v" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "tau
([3,2],[1,0]); " }{TEXT -1 59 "exemplo: aplicando a transla\347\343o d
e v=[3,2] no ponto P=[1,0]" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 
27 "map2(tau,[3,3],figura[0]); " }{TEXT -1 73 "aplicando a transla\347
\343o de v=[3,3] sobre os pontos de figura[0] dado acima" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "polygonplot([figura[0], map2(tau,[3
,2],figura[0])], color=yellow); " }{TEXT -1 66 "desenhando a figura[0]
 e o seu transladado segundo o vetor v=[3,2]" }}}{EXCHG {PARA 0 "> " 
0 "" {MPLTEXT 1 0 55 "plotfigura[0] := polygonplot(figura[0], color=ye
llow): " }{TEXT -1 51 "armazenando o desenho de figura[0] em plotfigur
a[0]" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "plotfigura[1] := po
lygonplot(map2(tau,[3,2],figura[0]), color=green):" }}}{EXCHG {PARA 0 
"> " 0 "" {MPLTEXT 1 0 61 "display([plotfigura[0],plotfigura[1]], scal
ing=constrained); " }{TEXT -1 40 "exibindo as duas figuras simultaneam
ente" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "for i from 1 to 10 \+
do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "   plotfigura[i] := polygonpl
ot(map2(tau, evalm(i/10*[3,2]),figura[0]), color=green):" }}{PARA 0 ">
 " 0 "" {MPLTEXT 1 0 7 "   od: " }{TEXT -1 58 "criando uma sequ\352nci
a de quadros da anima\347\343o da transla\347\343o" }}}{PARA 0 "> " 0 
"" {MPLTEXT 1 0 80 "display( [seq( plotfigura[i], i=0..10)], insequenc
e=true, scaling=constrained); " }{TEXT -1 19 "exibindo a anima\347\343
o" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 
-1 29 "2. Rota\347\343o em torno da origem" }}{PARA 3 "" 0 "" {TEXT 
-1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 318 "     A rota\347\343o de
 angulo t em torno da origem associa a cada P=(x,y)=(r cos s, r sen s)
 o ponto Q = (r cos(s+t), r sen(s+t))=(x cost - y sen t, x sen t + y c
os t), o que pode ser obtido matricialmente com multiplica\347\343o po
r matriz.  A rota\347\343o em torno da origem \351 portanto uma transf
orma\347\343o linear, com matriz dada por:" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 43 "matrix(2,2,[cos(t),-sin(t),sin(t),cos(t)]);" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "Rot := (t,P) -> convert( eva
lm( matrix(2,2,[cos(t),-sin(t),sin(t),cos(t)]) &* P), list); " }{TEXT 
-1 75 "fun\347\343o que a cada rotaciona P de \342ngulo t em torno de \+
O, com entradas t e P" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "Ro
t( Pi/3, [1,0]); Rot(Pi/3, [0,1]); " }{TEXT -1 44 "aplicando a rota
\347\343o nos pontos [1,0] e [0,1]" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 29 "map2( Rot, Pi/3, figura[0]); " }{TEXT -1 58 "aplicand
o a rota\347\343o de \342ngulo Pi/3 nos pontos de figura[0]" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "plotfigura[1] := polygonplot
( map2( Rot, Pi/3, figura[0]), color=green): " }{TEXT -1 46 "armazenan
do o desenho do resultado da rota\347\343o." }}}{EXCHG {PARA 0 "> " 0 
"" {MPLTEXT 1 0 61 "display([plotfigura[0],plotfigura[1]], scaling=con
strained); " }{TEXT -1 37 "exibindo a figura original e a rodada" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "for i from 1 to 30 do " }}
{PARA 0 "> " 0 "" {MPLTEXT 1 0 103 "  plotfigura[i] := polygonplot( ma
p2( Rot, (i/30)*(2*Pi),figura[0]), color=green, scaling=constrained):
" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "  od: " }{TEXT -1 66 "fabricando
 30 quadros da anima\347\343o da rota\347\343o de uma volta completa" 
}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "display( [seq( plotfigura
[i], i=0..30)], insequence=true, scaling=constrained);" }}{PARA 0 "> \+
" 0 "" {MPLTEXT 1 0 0 "" }}{PARA 13 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "
" 0 "" {TEXT -1 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 45 "3. Refle
x\343o em rela\347\343o a uma reta pela origem" }}{EXCHG {PARA 4 "" 0 
"" {TEXT -1 0 "" }}{PARA 5 "" 0 "" {TEXT -1 5 "     " }{TEXT 258 25 "3
.1 Em rela\347\343o ao eixo Ox" }}{PARA 0 "" 0 "" {TEXT -1 103 "      \+
      Esta reflex\343o leva P=(x,y) em Q=(x,-y) e portanto \351 uma tr
ansforma\347\343o linear cuja matriz \351 " }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 23 "matrix(2,2,[1,0,0,-1]);" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 60 "Rx := P -> convert(evalm(matrix(2,2,[1,0,0,-1])&*P)
, list); " }{TEXT -1 42 "fun\347\343o que reflete P em rela\347\343o a
o eixo Ox" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "Rx([x,y]); Rx(
[1,2]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "plotfigura[1] :=
 polygonplot( map( Rx, figura[0]), color=green):" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 60 "display([plotfigura[0],plotfigura[1]], scaling=constr
ained);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "figura[20] := ma
p(Rx,figura[0]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "for i f
rom 1 to 20 do " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 100 " plotfigura[i] \+
:= display(\{polygonplot(evalm(figura[0]+i/20*(figura[20]-figura[0])),
 color=green)\}):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "  od:" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "display( [seq( plotfigura[i]
, i=0..20)], insequence=true, scaling=constrained);" }}}{EXCHG {PARA 
5 "" 0 "" {TEXT -1 87 "3.2 Reflex\343o em rela\347\343o a uma reta que
 passa pela origem e tem dire\347\343o do vetor v=[a,b]" }}{PARA 0 "" 
0 "" {TEXT -1 139 "       Este movimento \351 uma composi\347\343o de \+
uma rota\347\343o Rot(-t)  com a reflex\343o Rx seguida da rota\347
\343o Rot(t), onde t \351 o angulo entre Ox e v." }}{PARA 0 "" 0 "" 
{TEXT -1 90 "          (a matriz de Rot(t) \351 a mesma matriz que apa
rece se utilizasse mudan\347a de base.)" }}{PARA 0 "" 0 "" {TEXT -1 
151 "     Sendo dado v=[a,b], \351 facil obter a matriz de Rot(t). que
 \351 uma matriz ortogonal cuja primeira coluna \351 o versor de v. Su
a inversa \351 a transposta." }}{PARA 0 "" 0 "" {TEXT -1 4 "    " }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "v :=[1,2]: v1 := evalm(v/nor
m(v,2)): # v1 \351 o versor de v" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 36 "versor := v -> evalm(v/ norm(v,2)); " }{TEXT -1 13 "f
un\347\343o versor" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "verso
r(v);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "ortver := v -> eva
lm([ -v[2],v[1]]/norm(v,2)); " }{TEXT -1 67 "fun\347\343o que a cada v
 associa um vetor unit\341rio normal ao seu versor." }}}{EXCHG {PARA 
0 "> " 0 "" {MPLTEXT 1 0 10 "ortver(v);" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 42 "Rotv := v -> concat(versor(v),ortver(v)); " }{TEXT 
-1 68 "fun\347\343o que a cada v associa a matriz da rota\347\343o que
 leva [1,0] em v1" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "Rotv(v)
;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "MRefl :=v-> evalm(Rotv
(v) &* matrix(2,2,[1,0,0,-1]) &* transpose(Rotv(v))); " }{TEXT -1 73 "
a fun\347\343o MRefl associa a cada v  a matriz da reflex\343o segundo
 a reta dada" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "MRefl([a,b]
);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "Refl := (v,P) -> conv
ert(evalm(MRefl(v) &* P), list);" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 30 "map2( Refl, [1,2], figura[0]);" }}}{EXCHG {PARA 0 "> \+
" 0 "" {MPLTEXT 1 0 95 "plotreta:=plot( [[-v1[1],-v1[2]], [v1[1],v1[2]
]], color=red, thickness=2, scaling=constrained):" }}}{EXCHG {PARA 0 "
> " 0 "" {MPLTEXT 1 0 73 "plotfigura[1] := polygonplot( map2( Refl,[1,
2], figura[0]), color=green):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "di
splay([plotfigura[0],plotfigura[1],plotreta], scaling=constrained);" }
}{PARA 13 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "figura[20]:= map2(Refl,v,fig
ura[0]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "polygonplot(eva
lm(figura[0]+1/3*(figura[20]-figura[0])));" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 21 "for i from 1 to 20 do" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 108 "  plotfigura[i]:=display(\{plotreta,polygonplot(eval
m(figura[0]+i/20*(figura[20]-figura[0])), color=green)\}):" }}{PARA 0 
"> " 0 "" {MPLTEXT 1 0 5 "  od:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 
1 0 63 "display( [seq( plotfigura[i], i=0..20)],  scaling=constrained)
;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "display( [seq( plotfig
ura[i], i=0..20)], insequence=true, scaling=constrained);" }}}{EXCHG 
{PARA 5 "" 0 "" {TEXT -1 81 "3.3. Reflex\343o em rela\347\343o a uma r
eta pela origem dada pela equa\347\343o geral: ax+by =0" }}{PARA 0 "" 
0 "" {TEXT -1 64 "        Neste caso, conhece-se o vetor normal u = [a
,b] da reta." }}{PARA 0 "" 0 "" {TEXT -1 388 "        Ent\343o a refle
x\343o pode ser mais facilmente obtida lembrando que ela leva um ponto
 P em Q = P - 2 Proj(OP,u), onde Proj(OP,u)  \351 a proje\347\343o ort
ogonal do vetor OP sobre o vetor normal u. Temos tamb\351m de Geometri
a Analitica, que Proj(OP,u) = <OP,u>/<u,u> u. O produto <u,v> \351 o p
roduto escalar entre os vetores u e v, tamb\351m conhecido como produt
o interno de u e v, em Algebra Linear." }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 38 "u := [-2,1]: u1 := evalm(u/norm(u,2)):" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "plotreta := plot([[u1[2],-u1[1]], [
-u1[2],u1[1]]], color=red, thickness=2):" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 52 "Proj := (v,u)-> evalm(dotprod(v,u)/dotprod(u,u)*u); \+
" }{TEXT -1 43 "fun\347\343o que projeta ortogonalmente v sobre u" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "Proj([x,y],u);" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "Refl2 := (u,P) -> convert(evalm(P-2
*Proj(P,u)),list); " }{TEXT -1 88 "fun\347\343o que a cada P associa o
 seu refletido em rela\347\343o \340 reta normal a u passando por O." 
}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "map2(Refl2,[-2,1],figura[
0]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "plotfigura[1] := po
lygonplot( map2( Refl2,u, figura[0]), color=green):" }}{PARA 0 "> " 0 
"" {MPLTEXT 1 0 69 "display([plotfigura[0],plotfigura[1],plotreta], sc
aling=constrained);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "figura[20]:= map2(Refl2,u,figura[0]
);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "for i from 0 to 20 do
" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 108 "  plotfigura[i]:=display(\{plo
treta,polygonplot(evalm(figura[0]+i/20*(figura[20]-figura[0])), color=
green)\}):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "  od:" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "display( [seq( plotfigura[i], i=0..
20)],  scaling=constrained);" }}}{PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "di
splay( [seq( plotfigura[i], i=0..20)], insequence=true, scaling=constr
ained);" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 48 "4. Rota\347\343o em t
orno de um ponto C fora da origem" }}{PARA 3 "" 0 "" {TEXT -1 0 "" }}
{EXCHG {PARA 0 "" 0 "" {TEXT -1 136 "Sendo C=(c1, c2) o ponto fora da \+
origem, a rota\347\343o de angulo t em torno de C pode ser escrita com
o composi\347\343o de 3 movimentos, na ordem:" }}{PARA 0 "" 0 "" 
{TEXT -1 65 "   1. tau(-OC): Transla\347\343o de  -OC=(-c1,-c2) que le
va C na origem" }}{PARA 0 "" 0 "" {TEXT -1 52 "   2. Rot(t): Rota\347
\343o de angulo t em torno da origem" }}{PARA 0 "" 0 "" {TEXT -1 60 " \+
  3. tau(OC): Transla\347\343o de OC=(c1,c2) que leva origem em C" }}
{PARA 0 "" 0 "" {TEXT -1 126 "Ou seja, um ponto P  \351 levado em P1 =
 P -OC=tau(-OC,P), que \351 levado em Rot(t,P1)=P2, que finalmente \+
\351 levado em Q=tau(OC,P2)." }}{PARA 0 "" 0 "" {TEXT -1 38 "Logo, Q =
 tau(OC, Rot(t, tau(-OC,P)))." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 
0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "C := [2,1]:" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "RotC := (t,P) -> tau([C[1], \+
C[2]], Rot(t, tau([-C[1],-C[2]], P)));" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 32 "centro:=pointplot(C, color=red):" }}}{EXCHG {PARA 0 "
> " 0 "" {MPLTEXT 1 0 40 "figura[1] := map2(RotC,Pi/3, figura[0]);" }}
}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "plotfigura[0] := polygonplo
t( figura[0], color=yellow):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 
0 51 "plotfigura[1]:=polygonplot(figura[1], color=green):" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "display(\{plotfigura[0], plotfigura
[1], centro\}, scaling=constrained);" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 22 "for i from 0 to 30 do " }}{PARA 0 "> " 0 "" {MPLTEXT 
1 0 144 "  poligono := polygonplot( map2( RotC, (i/30)*(2*Pi),figura[0
]), color=green, scaling=constrained): plotfigura[i] := display(\{poli
gono,centro\}):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "  od:" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "display( [seq( plotfigura[i], i=0..
30)], insequence=true, scaling=constrained);" }}}}{SECT 1 {PARA 4 "" 
0 "" {TEXT -1 51 "5. Reflex\343o em rela\347\343o a uma reta qualquer \+
do plano" }}{EXCHG {PARA 4 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" 
{TEXT -1 77 "      Tamb\351m neste caso, obtemos o movimento como comp
osi\347\343o de 3 movimentos:" }}{PARA 0 "" 0 "" {TEXT -1 135 "       \+
1. Translac\343o que leva a reta para uma reta passando pela origem (b
asta escolher um ponto A da reta e fazer a tranla\347\343o por -OA)" }
}{PARA 0 "" 0 "" {TEXT -1 58 "       2. Reflex\343o segundo a reta pel
a origem obtida em 1." }}{PARA 0 "" 0 "" {TEXT -1 27 "       3. Transl
a\347\343o por OA" }}{PARA 5 "" 0 "" {TEXT -1 99 "      5.1. Se a reta
 passa pelos pontos A e B e portanto tenho um ponto A e um vetor v=AB \+
da reta, " }}{PARA 0 "" 0 "" {TEXT -1 167 "               um ponto P \+
\351 levado em Q = tau(OA, Refl( v, tau( -OA, P))), onde Refl( v, P) r
epresenta o refletido de P em rela\347\343o \340 reta pela origem com \+
dire\347\343o de v." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "A :=
 [1,0]: B:= [0,1]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "v := \+
evalm(B-A);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "Refl3 := P -
> tau( A, Refl(v, tau([-A[1],-A[2]], P)));" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 15 "Refl3(  [x,y]);" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 21 "map(Refl3,figura[0]);" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 24 "Reflpol := proc(A,B,pol)" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 25 "           local v, refl:" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 27 "           v := evalm(B-A):" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 64 "           refl := P -> tau( A, Refl(v, tau([-A[1],-A
[2]], P))):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "        map(refl, po
l): end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "Reflpol([2,1],[0,1],figura[0
]); # exemplo" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "plotfigura
[0] := polygonplot(figura[0], color=yellow):" }}}{EXCHG {PARA 0 "> " 
0 "" {MPLTEXT 1 0 44 "reta := plot([A,B], thickness=2, color=red):" }}
}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "plotfigura[20] := polygonpl
ot(Reflpol(A,B,figura[0]), color=green):" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 68 "display(\{plotfigura[0], plotfigura[20], reta\}, scal
ing=constrained);" }}}{EXCHG {PARA 5 "" 0 "" {TEXT -1 39 "5.2 Reflex
\343o segundo reta ax + by +c =0" }}{PARA 0 "" 0 "" {TEXT -1 210 "    \+
  Encontrando um ponto A da reta, sua normal sendo u=[a,b], leva o pon
to P em Q = tau(OA, Refl2(u, tau(-OA, P))), onde Refl2(u, P) represent
a o refletido de P em rela\347\343o \340 reta pela origem que tem norm
al u." }}{PARA 0 "" 0 "" {TEXT -1 1 " " }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 22 "A := [0,1]: u:= [1,1]:" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 25 "Reflpol2 := proc(A,u,pol)" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 25 "           local v, refl:" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 27 "           v := evalm(B-A):" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 65 "           refl := P -> tau( A, Refl2(u, tau([-A[1],-
A[2]], P))):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "        map(refl, p
ol): end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "Reflpol2(
[2,1],[0,1],figura[0]); # exemplo" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 98 "reta := implicitplot(u[1]*x+u[2]*y-u[1]*A[1]-u[2]*A[2
]=0, x=0..4, y=0..4, thickness=3, color=red):" }}}{EXCHG {PARA 0 "> " 
0 "" {MPLTEXT 1 0 68 "plotfigura[20] := polygonplot(Reflpol2(A,u,figur
a[0]), color=green):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "dis
play(\{plotfigura[0], plotfigura[20], reta\}, scaling=constrained);" }
}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 
"" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 
{PARA 3 "" 0 "" {TEXT -1 63 "Movimentos r\355gidos do plano, com uso d
e coordenadas homog\352neas." }}{EXCHG {PARA 256 "" 0 "" {TEXT -1 74 "
Vamos considerar o plano Oxy mergulhado no espa\347o Oxyz:   (x,y) -> \+
(x,y,1)" }}{PARA 0 "" 0 "" {TEXT -1 135 "Dizemos que estamos utilizand
o coordenadas homog\352neas, melhor representado por (x : y :1) devido
 \340 identifica\347\343o que fazemos do espa\347o " }{XPPEDIT 18 0 "R
^3;" "6#*$)%\"RG\"\"$\"\"\"" }{TEXT -1 23 " com o plano projetivo " }
{XPPEDIT 18 0 "RP^2;" "6#*$)%#RPG\"\"#\"\"\"" }{TEXT -1 29 ". Veja as \+
observa\347\365es abaixo." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 
35 "restart; with(linalg): with(plots):" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 33 "figura[0] := [[0,0],[1,0],[1,2]]:" }}}{EXCHG {PARA 0 
"> " 0 "" {MPLTEXT 1 0 54 "plotfigura[0] := polygonplot(figura[0], col
or=yellow):" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 43 "Observa\347\365es
 - o espa\347o e o plano projetivo " }{XPPEDIT 18 0 "RP^2;" "6#*$)%#RP
G\"\"#\"\"\"" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 97 " Na verdade, o esp
a\347o em quest\343o pode ser interpretado como uma representa\347\343
o do plano projetivo " }{XPPEDIT 18 0 "RP^2;" "6#*$)%#RPG\"\"#\"\"\"" 
}{TEXT -1 67 ", onde toda reta passando pela origem representa um \372
nico ponto de " }{XPPEDIT 18 0 "RP^2;" "6#*$)%#RPG\"\"#\"\"\"" }{TEXT 
-1 22 " . Ou seja, cada reta " }{XPPEDIT 18 0 "r;" "6#%\"rG" }{TEXT 
-1 2 ": " }{XPPEDIT 18 0 "(x, y, z) = lambda(a,b,c);" "6#/6%%\"xG%\"yG
%\"zG-%'lambdaG6%%\"aG%\"bG%\"cG" }{TEXT -1 41 " representa um \372nic
o ponto (a : b: c) em " }{XPPEDIT 18 0 "RP^2;" "6#*$)%#RPG\"\"#\"\"\"
" }{TEXT -1 156 ". Cada ponto do plano z=1 correspondente ao nosso pla
no mergulhado corresponde a uma reta do espa\347o passando pela origem
 que n\343o est\341 no plano z=0 [pontos (" }{XPPEDIT 18 0 "a/c;" "6#*
&%\"aG\"\"\"%\"cG!\"\"" }{TEXT -1 3 " : " }{XPPEDIT 18 0 "b/c;" "6#*&%
\"bG\"\"\"%\"cG!\"\"" }{TEXT -1 97 " : 1)]. As retas pela origem conti
das no plano z=0 do espa\347o representam \"pontos no infinito\" de " 
}{XPPEDIT 18 0 "RP^2;" "6#*$)%#RPG\"\"#\"\"\"" }{TEXT -1 36 " [pontos \+
(a : b: 0) que pertencem a " }{XPPEDIT 18 0 "RP^2;" "6#*$)%#RPG\"\"#\"
\"\"" }{TEXT -1 2 "]." }}{PARA 0 "" 0 "" {TEXT -1 373 "Este plano proj
etivo possui uma geometria diferente da euclidiana, pois n\343o existe
m retas paralelas. Todo par de retas distintas s\343o concorrentes. As
 retas paralelas do plano euclidiano correspondem a retas que se encon
tram no \"infinito\". E tamb\351m n\343o vale a no\347\343o de \"um po
nto est\341 entre os outros dois\" pois toda reta \351 no fundo uma cu
rva fechada como uma circunfer\352ncia." }}}}{SECT 1 {PARA 4 "" 0 "" 
{TEXT -1 55 "6. Transla\347\365es no plano e operadores lineares do es
pa\347o" }}{PARA 0 "" 0 "" {TEXT -1 105 "       Dada uma transla\347
\343o do plano segundo o vetor v=[a,b], o operador linear do espa\347o
 dada pela matriz" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "MT := v
 -> matrix(3,3, [1,0,v[1], 0,1,v[2],0,0,1]);" }}}{EXCHG {PARA 0 "> " 
0 "" {MPLTEXT 1 0 10 "MT([a,b]);" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 28 "evalm(MT([a,b])&* [x,y,1]); " }{TEXT -1 62 "No plano \+
z=1, o efeito \351 a transla\347\343o segundo o vetor v=[a,b]:" }}}
{EXCHG {PARA 0 "" 0 "" {TEXT -1 57 "Assim, podemos construir a aplica
\347\343o transla\347\343o do plano:" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 17 "tau2 := proc(v,P)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 
28 "       local P1, Q1, MT1, Q;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 
"       P1 := [P[1],P[2],1]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "   \+
    MT1 := matrix(3,3, [1,0,v[1], 0,1,v[2],0,0,1]):" }}{PARA 0 "> " 0 
"" {MPLTEXT 1 0 28 "       Q1 := evalm(MT1&*P1):" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 25 "       Q :=[Q1[1],Q1[2]]:" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 17 "       return(Q):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 
16 "       end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "tau
2([a,b],[x,y]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "tau3 := \+
proc(v,P1)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "        local Q1, MT1
;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "        MT1 := matrix(3,3, [1,
0,v[1], 0,1,v[2],0,0,1]):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "      \+
  Q1 := convert(evalm(MT1&*P1),list):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 
0 19 "        return(Q1):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "      \+
  end proc: " }{TEXT -1 75 "Mantendo o formato de 3 coordenadas, para \+
composi\347\343o com outros movimentos." }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 21 "tau3([a,b], [x,y,1]);" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 63 "figura1[0] := map( proc(P) [P[1],P[2],1]; end proc, f
igura[0]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "plotfigura1[0
]:= polygonplot3d(figura1[0], color=yellow):" }}}{EXCHG {PARA 0 "> " 
0 "" {MPLTEXT 1 0 70 "plotfigura[20] := polygonplot(map2(tau2,[1,1],fi
gura[0]),color=green):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "p
lotfigura1[20] := polygonplot3d(map2(tau3,[1,1],figura1[0]),color=gree
n):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "display(\{plotfigura
[0], plotfigura[20]\}, scaling=constrained);" }}}{EXCHG {PARA 0 "> " 
0 "" {MPLTEXT 1 0 86 "display(\{plotfigura1[0], plotfigura1[20]\}, sca
ling=constrained, axes=boxed,view=0..1);" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 55 "7. Rota\347
\365es no plano e os operadores lineares do espa\347o" }}{PARA 0 "" 0 
"" {TEXT -1 76 "As rota\347\365es no plano em torno da origem j\341 s
\343o operadores lineares no plano." }}{PARA 0 "" 0 "" {TEXT -1 101 "M
as ele pode ser estendido a um operador linear do espa\347o que efetua
 a rota\347\343o desejada no plano z=1." }}{PARA 0 "" 0 "" {TEXT -1 
150 "Assim, compondo com transla\347\365es, pode-se obter tamb\351m as
 rota\347\365es do plano em torno de pontos fora da origem utilizando \+
operadores lineares no espa\347o." }}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 89 "MRo := theta -> matrix(3,3, [cos(theta), -sin(theta),
0, sin(theta), cos(theta),0,0,0,1]);" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 10 "MRo(Pi/3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 
27 "evalm(MRo(theta)&*[x,y,1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 
1 0 16 "Ro2 := proc(t,P)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "       \+
local P1, M1, Q1,Q;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "       P1 :=
 [P[1],P[2],1]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "       M1 := mat
rix(3,3, [cos(t), -sin(t),0, sin(t), cos(t),0,0,0,1]):" }}{PARA 0 "> \+
" 0 "" {MPLTEXT 1 0 29 "       Q1 := evalm(M1 &* P1):" }}{PARA 0 "> " 
0 "" {MPLTEXT 1 0 27 "       Q := [Q1[1], Q1[2]]:" }}{PARA 0 "> " 0 "
" {MPLTEXT 1 0 17 "       return(Q):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 
0 16 "       end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "R
o2(Pi/3,[x,y]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "figura[2
0]:=map2(Ro2, Pi/3, figura[0]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 
1 0 17 "Ro3 := proc(t,P1)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "      \+
 local M1,Q1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "       M1 := matri
x(3,3, [cos(t), -sin(t),0, sin(t), cos(t),0,0,0,1]):" }}{PARA 0 "> " 
0 "" {MPLTEXT 1 0 43 "       Q1 := convert(evalm(M1 &* P1),list):" }}
{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "       return(Q1):" }}{PARA 0 "> " 
0 "" {MPLTEXT 1 0 16 "       end proc:" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 19 "Ro3(Pi/3, [x,y,1]);" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 39 "figura1[20]:=map2(Ro3,Pi/3,figura1[0]);" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "plotfigura1[0]:= polygonplot3d(figu
ra1[0], color=yellow):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "p
lotfigura[20] := polygonplot(figura[20],color=green):" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "plotfigura1[20] := polygonplot3d(fi
gura1[20],color=green):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "
display(\{plotfigura[0], plotfigura[20]\}, scaling=constrained);" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 87 "display(\{plotfigura1[0], pl
otfigura1[20]\}, scaling=constrained, axes=boxed, view=0..1);" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "C :=[3,2]: " }{TEXT -1 38 "c
entro de rota\347\343o dada de forma global" }}}{EXCHG {PARA 0 "> " 0 
"" {MPLTEXT 1 0 19 "RoC3 := proc(tC,P1)" }}{PARA 0 "> " 0 "" {MPLTEXT 
1 0 27 "       local t,C,M1,MT1,Q1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 
18 "       t := tC[1]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "       C \+
:= tC[2]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "       M1 := matrix(3,
3, [cos(t), -sin(t),0, sin(t), cos(t),0,0,0,1]):" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 57 "       MT1 := v -> matrix(3,3,[1,0,v[1],0,1,v[2],0,0,
1]):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "       Q1 := convert(evalm(
MT1(C) &* M1 &* MT1(-C)&* P1),list):    " }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 18 "       return(Q1):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 
16 "       end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "map
2(RoC3,[theta,C],figura1[0]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 
0 17 "RoC2 :=proc(tC,P)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "       l
ocal P1, Q1, Q;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "       P1 := [op
(P),1]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "       Q1 := RoC3(tC,P1)
:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "       Q := [Q1[1],Q1[2]]:" }}
{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "       return(Q):" }}{PARA 0 "> " 
0 "" {MPLTEXT 1 0 15 "      end proc:" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 31 "map2(RoC2,[theta,C],figura[0]);" }}}{EXCHG {PARA 0 ">
 " 0 "" {MPLTEXT 1 0 37 "animaRoC2 := proc(C,tmax,pol, N, cor)" }}
{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "             local C1, fig0, i, t, \+
fig1, quadro;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "             fig0 \+
:= pointplot(C,color=red):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "     \+
        for i from 0 to N do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "   \+
              t := (i/N)*tmax:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 " \+
                fig1:=polygonplot(map2(RoC2,[t,C],pol),color=cor):" }}
{PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "                 quadro[i]:=display
(\{fig0,fig1\}):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "               \+
  od:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "             display([seq(
quadro[i],i=0..N)], insequence=true, scaling=constrained);" }}{PARA 0 
"> " 0 "" {MPLTEXT 1 0 22 "             end proc:" }}}{EXCHG {PARA 0 "
> " 0 "" {MPLTEXT 1 0 41 "animaRoC2([3,1],2*Pi,figura[0],20,green);" }
}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "animaRoC3 := proc(C,tmax,p
ol1, N, cor)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "             local \+
C1, fig0, i, t, fig1, quadro;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "  \+
           fig0 := pointplot3d([op(C),1],color=red):" }}{PARA 0 "> " 
0 "" {MPLTEXT 1 0 33 "             for i from 0 to N do" }}{PARA 0 "> \+
" 0 "" {MPLTEXT 1 0 33 "                 t := (i/N)*tmax:" }}{PARA 0 "
> " 0 "" {MPLTEXT 1 0 92 "                 fig1:=polygonplot3d(map2(Ro
C3,[t,C],pol1),color=cor, axes=boxed,view=0..1):" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 49 "                 quadro[i]:=display(\{fig0,fig1\}):" 
}}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "                 od:" }}{PARA 0 "
> " 0 "" {MPLTEXT 1 0 84 "             display([seq(quadro[i],i=0..N)]
, insequence=true, scaling=constrained);" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 22 "             end proc:" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 42 "animaRoC3([3,1],2*Pi,figura1[0],20,green);" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 56 "8. Reflex
\365es no plano e os operadores lineares do espa\347o" }}{PARA 0 "" 0 
"" {TEXT -1 213 "     Analogamente com o caso das rota\347\365es, pode
mos obter tanto as reflex\365es segundo retas pela origem (que j\341 s
\343o lineares no plano) quanto as reflex\365es segundo retas fora da \+
origem, usando coordenadas homog\352neas." }}{PARA 0 "" 0 "" {TEXT -1 
83 "  Vamos tratar aqui somente de reflex\365es segundo retas dadas po
r dois pontos A e B." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 
0 "> " 0 "" {MPLTEXT 1 0 17 "Re2 := proc(AB,P)" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 50 "       local A1, B1, P1, Q1, Q, v, v1, M1, T1, R1;" }
}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "       A1 := AB[1]: B1 := AB[2]: P
1 := [P[1],P[2],1]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "       v := \+
evalm(AB[2]-AB[1]): v1:= evalm(v/norm(v,2)):" }}{PARA 0 "> " 0 "" 
{MPLTEXT 1 0 54 "       T1 := (a,b) -> matrix(3,3,[1,0,a,0,1,b,0,0,1])
:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "       M1 := v1 -> matrix(3,3,
[v1[1],-v1[2],0,v1[2],v1[1],0,0,0,1]):" }}{PARA 0 "> " 0 "" {MPLTEXT 
1 0 86 "       R1 := v1 -> evalm(M1(v1)&*matrix(3,3,[1,0,0,0,-1,0,0,0,
1])&*transpose(M1(v1))):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "       \+
Q1 := evalm( T1(A1[1],A1[2])&* R1(v1) &* T1(-A1[1],-A1[2]) &*P1 ):    \+
  " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "       Q := [Q1[1],Q1[2]]:" }
}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "       return(Q):" }}{PARA 0 "> " 
0 "" {MPLTEXT 1 0 16 "       end proc:" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 25 "Re2([[1,0],[0,1]],[x,y]);" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 47 "figura[20]:=map2(Re2,[[1,0],[0,1]], figura[0]);" }}
}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "plotfigura[20] := polygonpl
ot(figura[20], color=green):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 
0 105 "display(\{plotfigura[0], plotfigura[20], plot([[1,0],[0,1]],col
or=red,thickness=3)\}, scaling=constrained);" }}}{EXCHG {PARA 0 "> " 
0 "" {MPLTEXT 1 0 29 "anima2 := proc(A,B,pol,N,cor)" }}{PARA 0 "> " 0 
"" {MPLTEXT 1 0 44 "          local AB, pol1,reta, i, t, quadro;" }}
{PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "          AB := [A,B]: reta:= plot(
AB, color=red, thickness=3):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "   \+
       pol1 := map2(Re2,AB,pol):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 30 
"          for i from 0 to N do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "
             t := i/N: " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "        \+
     quadro[i]:=display(\{polygonplot(evalm((1-t)*pol +t*pol1), color=
cor), reta\}):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "             od: \+
        " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "          display([ seq
(quadro[i], i=0..N)], insequence=true, scaling=constrained);" }}{PARA 
0 "> " 0 "" {MPLTEXT 1 0 19 "          end proc:" }}}{EXCHG {PARA 0 ">
 " 0 "" {MPLTEXT 1 0 39 "anima2([1,0],[0,1],figura[0],20,green);" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}
}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 10 "Exerc\355cios" }}{PARA 4 "" 0 "
" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 140 "1. Escreva a matriz 3x
3 da transla\347\343o do plano segundo o vetor v = [a,b], em coordenad
as homog\352neas. Como essa matriz \351 usada na transla\347\343o?" }}
{PARA 0 "" 0 "" {TEXT -1 17 "    Solu\347\343o: M = " }{XPPEDIT 18 0 "
matrix([[1, 0, a], [0, 1, b], [0, 0, 1]]);" "6#-%'matrixG6#7%7%\"\"\"
\"\"!%\"aG7%F)F(%\"bG7%F)F)F(" }{TEXT -1 85 ". Essa matriz \351 usada \+
do seguinte modo: para cada (x,y) do plano, \351 feita a opera\347\343
o " }{XPPEDIT 18 0 "matrix([[1, 0, a], [0, 1, b], [0, 0, 1]]);" "6#-%'
matrixG6#7%7%\"\"\"\"\"!%\"aG7%F)F(%\"bG7%F)F)F(" }{TEXT -1 1 "x" }
{XPPEDIT 18 0 "matrix([[x], [y], [1]]);" "6#-%'matrixG6#7%7#%\"xG7#%\"
yG7#\"\"\"" }{TEXT -1 155 " e depois, desprezada a \372ltima coordenad
a z=1 do resultado. Como a multiplica\347\343o fornece (x+a, y+b, 1), \+
a transla\347\343o assim obtida leva (x,y) em (x+a, y+b)." }}{PARA 0 "
" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 46 " 2. Escreva a matr
iz 3x3 da rota\347\343o de \342ngulo " }{XPPEDIT 18 0 "Pi/3;" "6#*&%#P
iG\"\"\"\"\"$!\"\"" }{TEXT -1 56 " do plano em torno da origem, em coo
rdenadas homog\352neas." }}{PARA 0 "" 0 "" {TEXT -1 36 "    \315dem, e
m torno do ponto C=[a,b]." }}{PARA 0 "" 0 "" {TEXT -1 114 "    Obtenha
, utilizando as matrizes acima, a rota\347\343o do ponto P = [10,0] em
 torno da origem e em torno de C=[3,2]." }}{PARA 0 "" 0 "" {TEXT -1 0 
"" }}{PARA 0 "" 0 "" {TEXT -1 152 "3. Escreva a matriz 3x3 da relfex
\343o do plano em rela\347\343o \340 reta por A = [1,0] e B = [0,-1] e
 obtenha o resultado da reflex\343o aplicada ao ponto P = (x,y)." }}
{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 125 "4. Quais
 dos movimentos r\355gidos descritos acima s\343o transforma\347\365es
 lineares do plano no plano (operadores lineares do plano)?" }}{PARA 
0 "" 0 "" {TEXT -1 0 "" }}}}{MARK "8" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 
1 1 }{PAGENUMBERS 0 1 2 33 1 1 }
