python ! Triangulo de Sierpinski ( Resolvido )

Iniciado por biohazard, 10 de Novembro de 2005, 16:02

tópico anterior - próximo tópico

biohazard

O que eu tenho que fazer eh o seguinte
Dado um triângulo eqüilátero ABC escolha um dos vértices para ser seu ponto inicial e simule o seguinte jogo: usando um dado com seis faces numeradas (de 1 à 6), sorteie um dos vértices do triângulo da seguinte maneira: o vértice A está associado às faces 1 e 2 do dado, o vértice B às faces 3 e 4 e o vértice C às faces 5 e 6. Encontre o ponto médio do segmento que tem como pontos extremos vértice escolhido inicialmente e o sorteado. Repita o processo com o ponto obtido. Escreva um algoritmo que dadas as coordenadas de A, B e C, plote os pontos obtidos

meu codigo ta assim so que nao funfa ! =(
AGora FUNFA ! =)

# Modulo de python que usa numeros randomicos
from random import choice

# Cria uma matriz  
def cmatriz(n, m):
matriz = [0] * n
for i in range(n):
matriz[i] = [0] * m
return matriz

def matriz(l,k):
linha=0
coluna=0
matriz = [0]*l
while (linha < l):
matriz[linha] = [0]*k
linha = linha + 1
return matriz

plano = matriz(500,500)
plano[100][10] = 15
plano[100][110] = 15
plano[14][60] = 15

# Faz os calculos dos pontos medios
print '\n'
print "(Para melhor resolucao utilize numeros grandes)"
x = int(raw_input("Digite o numero de pontos :"))
ponto = [100,10]
for linha in range(int(x)):
aux = [1,2,3,4,5,6]
if choice(aux) == 1:
ponto[0] = abs((ponto[0]+100))/2
ponto[1] = abs((ponto[1]+10))/2
plano[int(ponto[0])][int(ponto[1])] = 15
if choice(aux) == 2:
ponto[0] = abs((ponto[0]+100))/2
ponto[1] = abs((ponto[1]+10))/2
plano[int(ponto[0])][int(ponto[1])] = 15
if choice(aux) == 3:
ponto[0] = abs((ponto[0]+100))/2
ponto[1] = abs((ponto[1]+110))/2;
plano[int(ponto[0])][int(ponto[1])] = 15
if choice(aux) == 4:
ponto[0] = abs((ponto[0]+100))/2
ponto[1] = abs((ponto[1]+110))/2
plano[int(ponto[0])][int(ponto[1])] = 15
if choice(aux) == 5:
ponto[0] = abs((ponto[0]+14))/2
ponto[1] = abs((ponto[1]+60))/2
plano[int(ponto[0])][int(ponto[1])] = 15
if choice(aux) == 6:
ponto[0] = abs((ponto[0]+14))/2
ponto[1] = abs((ponto[1]+60))/2
plano[int(ponto[0])][int(ponto[1])] = 15

# Criacao do arquivo PGM ( Usado para saber se a figura estava sendo gerada !
nome = raw_input("Digite o nome do arquivo.PGM :")
pfile = open (nome,"w")
pfile.write('P2\n')
pfile.write(str(300) + " " + str(300) + '\n')
pfile.write('15\n')

cont = 0;
i=0;
j=0;
while ( cont < 90000):
if (j == 300):
i = i + 1
j = 0
pfile.write('\n')
aux = str(plano[i][j]) + " "
pfile.write(aux)
cont = cont + 1
j = j+1
pfile.close()
print "O",nome,"criado com exito!"
Arch Linux Overlord
Kernel 2.6.25-ARCH

eggx.geo

Egg

biohazard

eu tinha digitado errado a parte de plano = [100][10] = 15 tinha colocado plano = (100,10) = 15

huahua erro besta ! nao reparei  :oops:
Arch Linux Overlord
Kernel 2.6.25-ARCH