python随机绘制圆
时间: 2023-11-15 13:03:28 浏览: 94
Python随机绘制圆可以使用Pygame库中的pygame.draw.circle()函数。该函数需要传入屏幕对象、颜色、圆心坐标、半径和线宽等参数。可以使用random库生成随机的圆心坐标和半径,从而实现随机绘制圆的效果。
在绘制圆的过程中,可以使用数学库中的math.hypot()函数计算两个圆心之间的距离,从而判断是否与其他圆重叠。如果重叠,则可以设置一个变量shouldprint为false,不进行绘制。
代码示例:
```
import pygame
import random
import math
pygame.init()
# 设置屏幕大小和标题
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Random Circles")
# 定义颜色
red = (255, 0, 0)
# 定义圆类
class Circle:
def __init__(self):
self.x = random.randint(0, 800)
self.y = random.randint(0, 600)
self.r = random.randint(10, 50)
self.shouldprint = True
def check_collision(self, c):
for i in range(len(c)):
if c[i] != self:
dist = int(math.hypot(c[i].x - self.x, c[i].y - self.y))
if dist < c[i].r + self.r:
self.shouldprint = False
break
def draw(self):
if self.shouldprint:
pygame.draw.circle(screen, red, (self.x, self.y), self.r, 1)
# 创建圆列表
circles = []
for i in range(50):
c = Circle()
c.check_collision(circles)
circles.append(c)
# 游戏循环
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 绘制圆
for c in circles:
c.draw()
# 更新屏幕
pygame.display.update()
# 退出游戏
pygame.quit()
```
阅读全文