pygame Clipping an runder Fläche
Verfasst: Mittwoch 11. Februar 2015, 08:38
Hallo, hat jemand Erfahrungen mit pygame.
Kann man eine Clipping-Area in Form eines Kreises erstellen?
Oder wie könnte man es lösen, dass Die gezeichneten Objekte nicht über eine Kreislinie hinaus gezeichnet werden?
Kann man eine Clipping-Area in Form eines Kreises erstellen?
Oder wie könnte man es lösen, dass Die gezeichneten Objekte nicht über eine Kreislinie hinaus gezeichnet werden?
Code: Alles auswählen
import datetime, math, pygame
class GrafikAnzeige:
def __init__(self, datum=datetime.datetime.today()):
self.BLAU = (0, 102, 204)
self.SCHWARZ = (0, 0, 0)
self.ROT = (255, 0, 0)
self.GRUEN = (0, 102, 0)
self.WEISS = (255, 255, 255)
self.datum = datum
def Grafik(self):
pygame.init()
sbreite = shöhe = 600
self.mX = self.mY = sbreite / 2.0
self.screen = pygame.display.set_mode((600, 600))
pygame.display.set_caption("Sonneverlauf")
self.screen.fill(self.WEISS)
for i in range(1, 10, 1):
pygame.draw.ellipse(self.screen, self.SCHWARZ, (self.mX - self.mX / 10.0 * i, self.mY - self.mY / 10.0 * i, sbreite / 10.0 * i, shöhe / 10.0 * i), 1)
for i in range(0, 360, 10):
r1 = self.mX / 10.0 * 9.0
r2 = self.mX / 10.0 * 1.0
w = float(i / 180.0 * math.pi)
sinI = math.sin(w)
cosI = math.cos(w)
px1 = self.mX + sinI * r1
py1 = self.mY - cosI * r1
px2 = self.mX + sinI * r2
py2 = self.mY - cosI * r2
pygame.draw.line(self.screen, self.SCHWARZ, (px1, py1), (px2, py2), 1)
font = pygame.font.Font(None, 12)
for i in range(1, 10, 1):
text = font.render("%02d" % (90 -(i * 10)), 1, self.SCHWARZ)
self.screen.blit(text, (self.mX - 10, self.mY - 5 + self.mY / 10.0 * i))
pygame.draw.line(self.screen, self.ROT, (0.0, 400.0),(600.0, 150.0), 4)
pygame.display.flip()
mainloop = True
while mainloop:
for event in pygame.event.get():
if event.type == pygame.QUIT or (event.type == pygame.KEYUP and event.key == pygame.K_ESCAPE):
mainloop = False
pygame.quit()
grafik = GrafikAnzeige(datetime.datetime.now)
grafik.Grafik()