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.
import random
import math
import cTurtle
def monte_carlo_animado(num_dardos):
"""
Valor de pi pelo método de monte Carlo.
Versão gráfica.
"""
# prepara a visualização
janela = cTurtle.Turtle()
janela.setWorldCoordinates(-2,-2,2,2)
janela.hideturtle()
janela.up()
janela.goto(-1,0)
janela.down()
janela.goto(1,0)
janela.up()
janela.goto(0,1)
janela.down()
janela.goto(0,-1)
# vamos aos cálculos
conta_dardos_in = 0
janela.up()
for i in range(num_dardos):
x = random.random()
y = random.random()
d = math.sqrt(x**2 + y**2)
janela.goto(x,y)
if d <= 1:
conta_dardos_in = conta_dardos_in + 1
janela.color("blue")
else:
janela.color("red")
janela.dot()
janela.exitOnClick()
res = 4 * (conta_dardos_in / float(num_dardos))
return res
if __name__ == '__main__':
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