Wie man gezogen Kreise mit pygame mischen

stimmen
4

Ich versuche hier eine Anwendung wie die zu erstellen:

http://www.eigenfaces.com/

Grundsätzlich viele überlappende Kreise mit pygame gezogen. Ich kann nicht herausfinden, wie die Mischung der Kreise, um sie durchscheinend zu machen. Das ist haben Farben überlappend durchscheinen. Mein Code so weit ist dies:

import sys, random, time
import pygame
from pygame.locals import *
from pygame import draw

rand = random.randint

pygame.init( )

W = 320
H = 320
size = (W, H)

screen = pygame.display.set_mode(size)

run = True
while 1:

    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN: 
            if event.key == pygame.K_SPACE :
                run = not run
            else:
                sys.exit()
    if run:
        xc = rand(1, W)
        yc = rand(1, H)
        rc = rand(1, 25)

        red = rand(1, 255)
        grn = rand(1, 255)
        blu = rand(1, 255)

        draw.circle(screen, (red, grn, blu, 200), (xc, yc), rc, 0)

        pygame.display.flip()
Veröffentlicht am 09/12/2008 um 17:09
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
6

Ich habe es von einer Oberflächenzeichnung zu arbeiten, die nicht die Anzeige und die Kombination der Satz colorkey und stellen Alpha-Funktionen.

import pygame
from pygame.locals import *

TRANSPARENT = (255,0,255)
pygame.init()
screen = pygame.display.set_mode((500,500))

surf1 = pygame.Surface((200,200))
surf1.fill(TRANSPARENT)
surf1.set_colorkey(TRANSPARENT)
pygame.draw.circle(surf1, (0,0,200,100),(100,100), 100)

surf2 = pygame.Surface((200,200))
surf2.fill(TRANSPARENT)
surf2.set_colorkey(TRANSPARENT)
pygame.draw.circle(surf2, (200,0,0,100),(100,100), 100)

surf1.set_alpha(100)
surf2.set_alpha(100)

while True:
    screen.fill((255,255,255))

    for event in pygame.event.get():
            if event.type == QUIT:
            pygame.quit()

    screen.blit(surf1, (100,100,100,100))
    screen.blit(surf2, (200,200,100,100))
    pygame.display.flip()

PS Es gibt auch die Mischung Flags, die Sie in der blit setzen können () Argumente: Pygame.org - Surface.blit

Beantwortet am 09/12/2008 um 19:17
quelle vom benutzer

stimmen
3

Ich bin Dave. Schöpfer der Bilder bei eigenfaces.com. Viel Glück mit Ihren Experimenten. Ich stellte den Code hier:

http://www.eigenfaces.com/

Lassen Sie uns wissen, wenn es von Nutzen ist.

Durch die Art und Weise .. habe ich auch mit Filmen experimentiert ... Hier sind etwa 20 Frames mit etwa 1000 Generationen je:

http://www.eigenfaces.com/img/morphs/anim-100x20.gif

Beantwortet am 09/12/2008 um 23:32
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more