|  | @@ -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])
 |