Autor Tópico: python ! Triangulo de Sierpinski ( Resolvido )  (Lida 8689 vezes)

Offline biohazard

  • Usuário Ubuntu
  • *
  • Mensagens: 523
  • <thug life>
    • Ver perfil
python ! Triangulo de Sierpinski ( Resolvido )
« Online: 10 de Novembro de 2005, 16:02 »
O que eu tenho que fazer eh o seguinte
Código: [Selecionar]
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 ! =)

Código: [Selecionar]
# 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

Offline eggx.geo

  • Usuário Ubuntu
  • *
  • Mensagens: 222
    • Ver perfil
python ! Triangulo de Sierpinski ( Resolvido )
« Resposta #1 Online: 11 de Novembro de 2005, 18:33 »
com é que tu resolveu?
Egg

Offline biohazard

  • Usuário Ubuntu
  • *
  • Mensagens: 523
  • <thug life>
    • Ver perfil
python ! Triangulo de Sierpinski ( Resolvido )
« Resposta #2 Online: 11 de Novembro de 2005, 20:44 »
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