01.
def
visualiza_terramotos(ficheiro, num_agrupa):
02.
dicio_dados
=
cria_dicio_dados_terramoto(ficheiro)
03.
centroides_terramoto
=
cria_centroides(num_agrupa,dicio_dados)
04.
agrupamentos
=
cria_agrupamentos(num_agrupa,centroides_terramoto,dicio_dados,
10
)
05.
06.
# prepara o cenário ...
07.
tartaruga
=
cTurtle.Turtle()
08.
tartaruga.bgpic(
'/tempo/imagens/worldmap.gif'
)
09.
tartaruga.screensize(
448
,
266
)
10.
tartaruga.setWorldCoordinates(
-
180
,
-
90
,
180
,
90
)
11.
tartaruga.hideturtle()
12.
tartaruga.up()
13.
14.
# cores aleatorias
15.
tartaruga.colormode(
255
)
16.
lista_cores
=
[]
17.
while
len(lista_cores) < num_agrupa:
18.
r
=
random.randint(
0
,
255
)
19.
g
=
random.randint(
0
,
255
)
20.
b
=
random.randint(
0
,
255
)
21.
cor
=
(r,g,b)
22.
minimo
=
dist_euclid_lista(cor, lista_cores)
23.
if
(cor
not
in
lista_cores)
and
(minimo >
255
):
24.
lista_cores.append(cor)
25.
26.
# mostra os dados
27.
for
indice_agrupa
in
range(num_agrupa):
28.
tartaruga.color(lista_cores[indice_agrupa])
29.
for
chave
in
agrupamentos[indice_agrupa]:
30.
longitude
=
dicio_dados[chave][
0
]
31.
latitude
=
dicio_dados[chave][
1
]
32.
tartaruga.goto(longitude,latitude)
33.
tartaruga.dot()
34.
tartaruga.exitOnClick()
Começamos por obter os agrupamentos com os programas já desenvolvidos anteriormente (linhas 3 a 5 ). Criamos de seguida o objecto tartaruga (linha 8), colocamos em background a imagem (linha 9), e ajustamos o tamanho da janela ao tamanho real da imagem (linha 10). Redefinimos as coordenadas do mundo para ficarem iguais aos do problema (linha 11, latitude entre -90 e 90 e longitude entre -180 e 180), escondemos (linha 12) e levantamos a tartaruga (linha 13). Escolhemos aleatoriamente as cores dos pontos com que vamos marcar o mapa (linhas 15 a 25), mas garantido que são suficientemente distintas (linhas 23 a 25). Depois é só mostrar os pontos (linhas 27 a 34), e abandonar no final (linha 35)!
A figura abaixo mostra um exemplo resultado da execução do programa com os dados do tremor de terra e para 4 agrupamentos.

Sem comentários:
Enviar um comentário