No post anterior mostrei como se pode calcular o valor de Pi usando o Método de Monte Carlo. Também já falei no módulo cTurtle que permite colocar tartarugas a fazer desenhos numa tela. Vamos juntar as duas coisas e fornecer uma solução ao cálculo do vaslor de Pi com animação! Para já o código.
01.
import
random
02.
import
math
03.
import
cTurtle
04.
05.
06.
def
monte_carlo_animado(num_dardos):
07.
"""
08.
Valor de pi pelo método de monte Carlo.
09.
Versão gráfica.
10.
"""
11.
# prepara a visualização
12.
janela
=
cTurtle.Turtle()
13.
janela.setWorldCoordinates(
-
2
,
-
2
,
2
,
2
)
14.
janela.hideturtle()
15.
16.
janela.up()
17.
janela.goto(
-
1
,
0
)
18.
janela.down()
19.
janela.goto(
1
,
0
)
20.
21.
janela.up()
22.
janela.goto(
0
,
1
)
23.
janela.down()
24.
janela.goto(
0
,
-
1
)
25.
26.
# vamos aos cálculos
27.
conta_dardos_in
=
0
28.
janela.up()
29.
30.
for
i
in
range(num_dardos):
31.
x
=
random.random()
32.
y
=
random.random()
33.
34.
d
=
math.sqrt(x
*
*
2
+
y
*
*
2
)
35.
janela.goto(x,y)
36.
37.
if
d <
=
1
:
38.
conta_dardos_in
=
conta_dardos_in
+
1
39.
janela.color(
"blue"
)
40.
else
:
41.
janela.color(
"red"
)
42.
43.
janela.dot()
44.
45.
janela.exitOnClick()
46.
47.
res
=
4
*
(conta_dardos_in
/
float(num_dardos))
48.
49.
return
res
50.
51.
52.
if
__name__
=
=
'__main__'
:
53.
print
monte_carlo_animado(
1500
)
A parte da cálculo propriamente dito já foi explicado. Tratemos pois à animação. As linhas 11,12 e 13 criam a tartaruga e definem a dimensão da tela. Das linhas 15 à 22 desenhamos os eixos. Na linha 33 colocamos a tartaruga no sítio certo.Os dardos dentro do círculo serão azuis (linha 37) e ou outros vermelhos (linha 39). São desenhados como pontos (linha 41). Se clicarmos dentro da tela o programa termina (linha 43). Executando o programa para 1500 dardos obtemos a linda figura:

Sem comentários:
Enviar um comentário