1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
# -*- coding: utf-8 -*-
import pygame
from pygame.locals import *
from sys import exit
import math
import datetime
from pygame import gfxdraw
from time import sleep
from random import choice
pygame.init()
screen=pygame.display.set_mode((800,600))
def get_angle(pos,scale,start_pos) :
offset=start_pos #décalage
degrees=360/scale * pos + offset
return degrees
def return_coords(pos,scale,length,x,y,start_pos) :
degrees=get_angle(pos,scale,start_pos)
rad_value=degrees/180.0*math.pi #conversion en radians
x_pos=round(math.cos(rad_value)*length+x)
y_pos=round(math.sin(rad_value)*length+y)
return (x_pos,y_pos)
def get_angle_inverse(pos,scale,start_pos) :
offset=start_pos #décalage
degrees=360/scale * pos + offset
return -degrees
def return_coords_inverses(pos,scale,length,x,y,start_pos) :
degrees=get_angle_inverse(pos,scale,start_pos)
rad_value=degrees/180.0*math.pi #conversion en radians
x_pos=round(math.cos(rad_value)*length+x)
y_pos=round(math.sin(rad_value)*length+y)
return (x_pos,y_pos)
angle_list_positiv=[6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96, 102, 108, 114, 120, 126, 132, 138, 144, 150, 156, 162, 168, 174, 180, 186, 192, 198, 204, 210, 216, 222, 228, 234, 240, 246, 252, 258, 264, 270, 276, 282, 288, 294, 300, 306, 312, 318, 324, 330, 336, 342, 348, 354, 360]
angle_list_negativ=[-6, -12, -18, -24, -30, -36, -42, -48, -54, -60, -66, -72, -78, -84, -90, -96, -102, -108, -114, -120, -126, -132, -138, -144, -150, -156, -162, -168, -174, -180, -186, -192, -198, -204, -210, -216, -222, -228, -234, -240, -246, -252, -258, -264, -270, -276, -282, -288, -294, -300, -306, -312, -318, -324, -330, -336, -342, -348, -354, -360]
angle_list_negativ.reverse()
control=0
ii=0
while True :
if control == 0 :
from_center=1
spiral_coords=[]
i=0
while i < 60 :
spiral_coords.append(return_coords(i,60,from_center,400,300,angle_list_positiv[i]))
i += 1
from_center +=1
i=0
while i < 60 :
spiral_coords.append(return_coords(i,60,from_center,400,300,angle_list_positiv[i]))
i += 1
from_center +=1
i=0
while i < 60 :
spiral_coords.append(return_coords(i,60,from_center,400,300,angle_list_positiv[i]))
i += 1
from_center +=1
to_change=angle_list_positiv.pop(0)
angle_list_positiv.append(to_change)
ii += 1
if ii == 60 :
ii=0
control=1
elif control == 1 :
from_center=1
spiral_coords=[]
i=0
while i < 60 :
spiral_coords.append(return_coords_inverses(i,60,from_center,400,300,angle_list_positiv[i]))
i += 1
from_center +=1
i=0
while i < 60 :
spiral_coords.append(return_coords_inverses(i,60,from_center,400,300,angle_list_positiv[i]))
i += 1
from_center +=1
i=0
while i < 60 :
spiral_coords.append(return_coords_inverses(i,60,from_center,400,300,angle_list_positiv[i]))
i += 1
from_center +=1
to_change=angle_list_positiv.pop(0)
angle_list_positiv.append(to_change)
ii += 1
if ii == 60 :
ii=0
control=0
screen.fill((0))
pygame.draw.lines(screen,(255,255,255),False,spiral_coords,2)
sleep(0.1)
for event in pygame.event.get() :
if event.type == QUIT :
exit()
pygame.display.update() |
Partager