|
@@ -3,6 +3,7 @@
|
|
|
import pygame
|
|
|
import pygame.gfxdraw
|
|
|
import math
|
|
|
+import random
|
|
|
|
|
|
pg = pygame
|
|
|
pygame.init()
|
|
@@ -111,26 +112,70 @@ class Grid():
|
|
|
self.blue -= 10
|
|
|
return pixel_array
|
|
|
|
|
|
-class _planet():
|
|
|
+class Planet():
|
|
|
def __init__(self,x,y):
|
|
|
self._pos_center = (x,y)
|
|
|
self._ang = 0
|
|
|
+ self._ang_dir = 1
|
|
|
self._r = 10 #
|
|
|
- self._r2 = 10 # orbit,umlaufbahn
|
|
|
- self._color = [255,255,255]
|
|
|
+ self._orbit = 30 # orbit,umlaufbahn
|
|
|
+ self._color = [255,255,0]
|
|
|
self._x=0
|
|
|
self._y=0
|
|
|
- self.ix = math.sin(math.radians(0))*self.r
|
|
|
- self.iy = math.sqrt(self.r**2 - ix**2)
|
|
|
- def ang(self):
|
|
|
- pass
|
|
|
- def draw():
|
|
|
- pass
|
|
|
+ self._ix = 0
|
|
|
+ self._iy = 0
|
|
|
+ self._quadrant = 0
|
|
|
+
|
|
|
+ def rotate(self):
|
|
|
+ q = 0
|
|
|
+ if self._ang_dir:
|
|
|
+ self._ang += 1 # degree
|
|
|
+ if self._ang > 90:
|
|
|
+ self._ang = 0
|
|
|
+ self._quadrant += 1
|
|
|
+ # q = 1
|
|
|
+ #if self._ang < 0:
|
|
|
+ # self._ang = 0
|
|
|
+ # q = 1
|
|
|
+ else:
|
|
|
+ self._ang -= 1 # degree
|
|
|
+
|
|
|
+ if q:
|
|
|
+ r1 = random.randint(0,255)
|
|
|
+ r2 = random.randint(0,255)
|
|
|
+ self._color = [255,r1,r2]
|
|
|
+
|
|
|
+ self._ix = math.sin(math.radians(self._ang))*self._orbit
|
|
|
+ #self._ix = math.sin(self._ang)*self._orbit
|
|
|
+ #self._ix = math.sin(math.degrees(self._ang))*self._orbit
|
|
|
+ self._iy = math.sqrt(self._orbit**2 - self._ix**2)
|
|
|
+
|
|
|
+ y = self._iy
|
|
|
+ x = self._ix
|
|
|
+ if self._quadrant == 1:
|
|
|
+ self._iy = -x
|
|
|
+ self._ix = y
|
|
|
+ elif self._quadrant == 2:
|
|
|
+ self._iy = -y
|
|
|
+ self._ix = -x
|
|
|
+ elif self._quadrant == 3:
|
|
|
+ self._iy = x
|
|
|
+ self._ix = -y
|
|
|
+ else:
|
|
|
+ self._quadrant = 0
|
|
|
+
|
|
|
+
|
|
|
+ def draw(self,x,y):
|
|
|
+ self._pos_center = (x,y)
|
|
|
+ self.rotate()
|
|
|
+ self._x = int(self._pos_center[0] + self._ix)
|
|
|
+ self._y = int(self._pos_center[1] + self._iy)
|
|
|
+ print("ang {} {} {:3} {:3} {}".format( self._ang,self._quadrant,self._x,self._y,self._color))
|
|
|
return (self._x,self._y,self._color)
|
|
|
|
|
|
|
|
|
class Gobo1():
|
|
|
- def __init__(self,x=20,y=20,speed=5):
|
|
|
+ def __init__(self,x=20,y=20,speed=1):
|
|
|
self.pos_x=x
|
|
|
self.pos_x_dir = 1
|
|
|
self.pos_y=y
|
|
@@ -141,6 +186,8 @@ class Gobo1():
|
|
|
self.ang = 0
|
|
|
self.ix=0
|
|
|
self.iy=0
|
|
|
+ self.planetes = []
|
|
|
+ self.planetes.append(Planet(self.pos_x,self.pos_y) )
|
|
|
def rotate(self):
|
|
|
self.ix = math.sin(math.radians(0))*self.r
|
|
|
self.iy = math.sqrt(self.r**2 - self.ix**2)
|
|
@@ -156,6 +203,10 @@ class Gobo1():
|
|
|
|
|
|
x=self.pos_x
|
|
|
y=self.pos_y
|
|
|
+ for planet in self.planetes:
|
|
|
+ px,py,pcolor = planet.draw(x,y)
|
|
|
+ k = "{}:{},{}:{}".format(px,px+10,py,py+10)
|
|
|
+ pixel_array[k] = (px,px,py,py , pcolor )
|
|
|
|
|
|
x-=self.r
|
|
|
y-=self.r
|
|
@@ -201,8 +252,8 @@ pos_x_dir = 1
|
|
|
import time
|
|
|
#time.sleep(1)
|
|
|
grid = Grid()
|
|
|
-gobo1 = Gobo1()
|
|
|
-gobo2 = Gobo1(200,150,speed=8)
|
|
|
+gobo1 = Gobo1(speed=0)
|
|
|
+gobo2 = Gobo1(200,150,speed=0)
|
|
|
|
|
|
while run:
|
|
|
event_read()
|
|
@@ -215,27 +266,22 @@ while run:
|
|
|
|
|
|
for k in d:
|
|
|
i = d[k]
|
|
|
- print( k,"i",i)
|
|
|
- #pixel_array[i[0]:i[1],i[2]:i[3]] = i[4] #(x,x+10,y,y+10 , self.color )
|
|
|
- #rect = pygame.Rect(window.get_rect().center, (10, 10)) #.inflate(*([min(window.get_size())//2]*2))
|
|
|
- #rect = pygame.draw.circle(window,pg.Color(200,0,200) , (10,10) ,10)
|
|
|
- rect = pygame.draw.circle(window,i[4] , (i[0]+10,i[2]) ,10)
|
|
|
- rect = pygame.gfxdraw.aacircle(window, i[0]+10,i[2] ,10,i[4])
|
|
|
- #rect = pygame.draw.Rect(window,i[4] , (i[0],i[2]) ,10) #(10, 10))
|
|
|
+ #rect = pygame.draw.circle(window,i[4] , (i[0]+10,i[2]) ,10)
|
|
|
+ #rect = pygame.gfxdraw.aacircle(window, i[0]+10,i[2] ,10,i[4])
|
|
|
|
|
|
#rect = pygame.Rect(window.get_rect().center, (0, 0)).inflate(*([min(window.get_size())//2]*2))
|
|
|
#pygame.display.flip()
|
|
|
|
|
|
for k in d1:
|
|
|
i = d1[k]
|
|
|
- print( k,"i",i)
|
|
|
+ #print( k,"i",i)
|
|
|
#pixel_array[i[0]:i[1],i[2]:i[3]] = i[4] #(x,x+10,y,y+10 , self.color )
|
|
|
rect = pygame.draw.circle(window,i[4] , (i[0]+10,i[2]) ,10)
|
|
|
rect = pygame.gfxdraw.aacircle(window, i[0]+10,i[2] ,10,i[4])
|
|
|
|
|
|
for k in d2:
|
|
|
i = d2[k]
|
|
|
- print( k,"i",i)
|
|
|
+ #print( k,"i",i)
|
|
|
#pixel_array[i[0]:i[1],i[2]:i[3]] = i[4] #(x,x+10,y,y+10 , self.color )
|
|
|
rect = pygame.draw.circle(window,i[4] , (i[0]+10,i[2]) ,10)
|
|
|
rect = pygame.gfxdraw.aacircle(window, i[0]+10,i[2] ,10,i[4])
|