Oppure

Loading
16/01/15 18:39
lorenzoscarrone
#importo i moduli
import pygame
import math

pygame.init()

#definizioni delle variabili di grafica per l'accelerazione hardware
screen = pygame.display.set_mode((600,480), pygame.DOUBLEBUF | pygame.HWSURFACE)
pygame.display.set_caption("Prova per disegnare albero frattale")
surf = pygame.display.get_surface()

alfa_value = (45/180)*math.pi
distance   = 20
white = (255,255,255)
vertex     = [(300,0),(300,distance)]

def find_vertex( pa ,alfa ,l ):
    global vertex
    xb = pa[0]-math.sqrt( (l*l)/1+(math.tan(alfa)*math.tan(alfa)) ) 
    yb = math.tan(alfa)*(xb-pa[0])+pa[1]
    return vertex.append((xb,y(yb))) 
    
def v_angle( ang ):
    global alfa_value
    return ang + alfa_value
    
def v_distance ( l ):
    return (l/4)

def draw_lines( a ,b ):
    pygame.draw.line(surf, white , a, b, 1)

def y( c_y ):
    return c_y

pygame.draw.line(surf, white, vertex[0], vertex[1], 1)

count = 1
alfa = alfa_value
lato = distance

while True:

    find_vertex( vertex[count], alfa, lato )
    draw_lines( vertex[count], vertex[count+1] )

    alfa = v_angle( alfa )
    lato = v_distance ( lato )

    count += 1  
    print(count)
    
    pygame.time.delay(1000)      
    pygame.display.flip()



error code:

python3 frattali.py 
2
Traceback (most recent call last):
  File "frattali.py", line 45, in <module>
    draw_lines( vertex[count], vertex[count+1] )
  File "frattali.py", line 31, in draw_lines
    pygame.draw.line(surf, white , a, b, 1)
TypeError: Invalid end position argument
aaa
16/01/15 20:06
dnha
pygame.org/docs/ref/…
pygame.draw.line(Surface, color, start_pos, end_pos, width=1)


Ora non posso provare ma credo che con width=1 funzioni... :k:
aaa
17/01/15 10:18
lorenzoscarrone
grazie mille alla fine non so il perchè ma avevo un problema con la funzione math.pi che ho sostituito con il suo valore numerico 3.141592
aaa
17/01/15 17:33
dnha
Se ti serve solo pi da math puoi usare:
from math import pi
:k:
Ultima modifica effettuata da dnha 17/01/15 17:33
aaa