Я работаю над пигмеей со случайными движущимися точками.Точки движутся по черной поверхности.Цель состоит в том, чтобы добавить цвета RGB точек в случае их наложения.На следующем изображении 3 точки, которые перекрываются.Как я могу сложить RGB из точек?Примером на изображении являются три точки перекрытия.Часть точки, которая перекрывается, должна иметь цвет [3 * 250 / N, 3 * 250 / N., 3 * 250 / N] с N = 4, часть должна иметь цвет [187.5,187.5,187.5].Части точек, которые не перекрываются, должны оставаться основным цветом точки [250 / N, 250 / N, 250 / N].
Я не знаю, как сложить цвета RGB.Есть идеи?
И текущий код:
import math
import random
import pygame
import random
N = 4
class focalspot(object):
def __init__(self,dirnx=0,dirny=0,color=(250/N,250/N,250/N)):
self.pos = 100,100
self.dirnx = 0
self.dirny = 0
self.color = color
def move(self, dirnx, dirny):
self.dirnx = dirnx
self.dirny = dirny
self.pos = (self.pos[0] + self.dirnx, self.pos[1] + self.dirny)
if self.pos[0] >= width:
self.dirnx = -self.dirnx
if self.pos[1] >= width:
self.dirny = -self.dirny
if self.pos[0] <= 0:
self.dirnx = -self.dirnx
if self.pos[1] <= 0:
self.dirny = -self.dirny
def draw(self, surface):
pygame.draw.circle(surface, self.color, self.pos, 80, 0)
dots = [focalspot() for i in range(N)]
def redrawWindow(surface,dots):
global rows, width
surface.fill((0,0,0))
for dot in dots:
focalspot.draw(dot,surface)
pygame.display.update()
def main(flag,dots):
global width, rows
width = 400
win = pygame.display.set_mode((width, width))
counter = 0
clock = pygame.time.Clock()
while flag:
pygame.time.delay(50)
clock.tick(10)
for dot in dots:
dot.dirnx = int(random.uniform(-10, 10))
dot.dirny = int(random.uniform(-10, 10))
focalspot.move(dot,dot.dirnx,dot.dirny)
redrawWindow(win,dots)
pygame.image.save(win,'temp'+str(counter)+'.png')
counter =+ 1
print(counter)
main(True,dots)