terça-feira, 24 de novembro de 2009

Problema 7.3

Vamos beneficiar dos ensinamentos do exemplo 7.2. Já sabemos quais são os famosos três passos:


(1) Definir uma janela onde possam ser colocados os objectos;
(2) Gerar as imagens
(3) Posicionar as imagens e mostrar na janela


Reflectindo sobre o problema, não é difícil chegar à conclusão de que vamos andar a colocar quadriláteros de diferentes dimensões na nossa tela. Notar que as linhas são na realidade quadriláteros de pequena espessura. Podemos por isso modularizar o nosso programa desenvolvendo sub-programas que podem ser reutilizados!

Dito isto, uma solução possível é a seguinte:

def quadrilatero(lado_1,lado_2,cor):
"""
Cria uma figura rectangular, colorida.
"""
imagem = cImage.EmptyImage(lado_1,lado_2)
pixel = cImage.Pixel(cor[0],cor[1],cor[2])
for coluna in range(lado_1):
for linha in range(lado_2):
imagem.setPixel(coluna,linha,pixel)
return imagem

def cria_e_mostra(lado_1,lado_2, cor, pos,janela):
imagem = quadrilatero(lado_1,lado_2,cor)
imagem.setPosition(pos[0],pos[1])
imagem.draw(janela)

def main():
janela = cImage.ImageWin('Mondrian',600,600)
# cria imagem, posiciona e mostra
cria_e_mostra(400,400,(255,0,0),(200,0),janela)
cria_e_mostra(200,200,(0,0,255),(0,400),janela)
cria_e_mostra(50,100,(255,255,0),(550,500),janela)
cria_e_mostra(10,600,(0,0,0),(190,0),janela)
cria_e_mostra(190,20,(0,0,0),(0,150),janela)
cria_e_mostra(600,10,(0,0,0),(0,390),janela)
cria_e_mostra(5,200,(0,0,0),(545,400),janela)
cria_e_mostra(50,10,(0,0,0),(550,500),janela)
# finito!
janela.exitOnClick()


No programa main temos os três passos bem identificados. A definição quadrilatero permite criar todas as formas necessárias. Compare com quadrado do problema 7.2. Finalmente, cria_e_mostra trata de criar as diferentes imagens, posicioná-las e mostrar na janela. Com os valores da figura o boneco é o apresentado na figura.



Sem comentários:

Enviar um comentário