用python随机画多个圆_Python Pygame随机绘制不重叠的圆圈
我对python非常陌生,似乎缺少了一些东西.
我想在pygame显示器上随机绘制圆圈,但前提是圆圈彼此不重叠.
我相信我必须找到所有圆心之间的距离,并且只有在该距离大于圆半径* 2时才绘制它.
我尝试了许多不同的方法,但是都没有成功,但我总是得到相同的结果-重叠绘制的圆圈.
#!/usr/bin/env python
import pygame, random, math
red = (255, 0, 0)
width = 800
height = 600
circle_num = 10
tick = 2
speed = 5
pygame.init()
screen = pygame.display.set_mode((width, height))
class circle():
def __init__(self):
self.x = random.randint(0,width)
self.y = random.randint(0,height)
self.r = 100
def new(self):
pygame.draw.circle(screen, red, (self.x,self.y), self.r, tick)
c = []
for i in range(circle_num):
c.append('c'+str(i))
c[i] = circle()
for j in range(len(c)):
dist = int(math.hypot(c[i].x - c[j].x, c[i].y - c[j].y))
if dist > int(c[i].r*2 + c[j].r*2):
c[j].new()
pygame.display.update()
else:
continue
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
最佳答案
您没有与其他所有圈子进行核对.我添加了一个变量shouldprint,如果其他圆圈太近,该值将设置为false.
import pygame, random, math
red = (255, 0, 0)
width = 800
height = 600
circle_num = 20
tick = 2
speed = 5
pygame.init()
screen = pygame.display.set_mode((width, height))
class circle():
def __init__(self):
self.x = random.randint(0,width)
self.y = random.randint(0,height)
self.r = 100
def new(self):
pygame.draw.circle(screen, red, (self.x,self.y), self.r, tick)
c = []
for i in range(circle_num):
c.append('c'+str(i))
c[i] = circle()
shouldprint = True
for j in range(len(c)):
if i != j:
dist = int(math.hypot(c[i].x - c[j].x, c[i].y - c[j].y))
if dist < int(c[i].r*2):
shouldprint = False
if shouldprint:
c[i].new()
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
用python随机画多个圆_Python Pygame随机绘制不重叠的圆圈相关推荐
- python turtle画彩虹的代码_Python使用turtle绘制国旗,Python图片转换位字符画
这篇文章主要是整合一些趣味代码,一方面自己对这些内容比较感兴趣,另一方面希望这些代码能提升大家的编程兴趣. 一.Python使用turtle绘制国旗 代码如下: 运行结果如下所示,它是动态绘制过程. ...
- python turtle画四叶草的步骤_python turtle工具绘制四叶草的实例分享
本篇文章介绍了python使用turtle库绘制四叶草的方法,代码很简单,希望对学习python的朋友有帮助. import turtle import time turtle.setup(650., ...
- python turtle画有趣的图形_Python turtle库绘制简单图形
一.简介 Python中的turtle库是一个直观有趣的图形绘制函数库.turtle库绘制图形有一个基本框架:一个小海龟在坐标系中爬行,其爬行轨迹形成了绘制图形. 二.简单的图形列举 1.绘制4个不同 ...
- python画多个圆_python turtle库画一个方格和圆实例
python turtle库画一个方格和圆实例 使用python的turtle库画一个方格和圆 打开python编译器,导入turtle库 from turtle import * 首先画一个距离为1 ...
- python怎么画三维函数图像_python中如何画三维的图形?
之前教了大家不少简单的画图方法,有的小伙伴已经想尝试更漂亮的高难度图形.小编找到了一个简单容易上手的分享给大家. 如果需要绘制三维的图形,matlab可以,python同样可以,代码风格也是极其的与m ...
- python turtle画房子详细解释_Python turtle画图库画姓名实例
*****看一下我定义的change()和run()函数****** 绘图坐标体系: 作用:设置主窗体的大小和位置 turtle.setup(width, height, startx, starty ...
- python 随机取列表值 重复_python怎么随机取列表的值
匿名用户 1级 2017-11-05 回答 第一步: 我分析如果从一堆数里随机抽取几个,并且按原来的顺序输出的话,那么至少要随机两次才能完成,第一次随机的值是确定随机几个数,第二次随机是确定随机的值. ...
- 用python画渐变的圆_python画环形图的方法
本文实例为大家分享了python画环形图的具体代码,供大家参考,具体内容如下 import os import pandas as pd import matplotlib.pyplot as plt ...
- 用python画多个圆_Python用图例在网格上绘制多个圆
我想在一个N乘M的网格上画出不同颜色和相同大小的圆.在x,y位置,可以是一个圆或什么都不是.在 我希望每个专栏都有一个x标签(这将是一个星期),和一个ylabel(这将是一个主题).在 现在,我找到了 ...
最新文章
- Java Web项目配置环境搭建-如何增加Tomcat服务 Tomcat[内含Tomcat7资源]
- Maven中使用tomcat:run 出现错误 org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException...
- python统计txt文件中文词频_Python 中文文件统计词频 + 中文词云
- 前端学习(1393):多人管理项目13加密实现
- 关于谷歌云,你应该知道的一切! | 技术头条
- 死于非命的中国亿万富翁们 1
- visualize python_安利一个Python大数据分析神器!
- Part Six 地理定位API
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_18、SpringBoot测试进阶高级篇之MockMvc讲解...
- 动态规划精卫填海之路
- 虚拟机vBox xp系统无法联网
- 有人把李白杜甫一生的旅行足迹做了地图,发现了大事!
- 2017 4 自考java_自考00831英语语法2017年4月真题及答案【解析版】
- 张氏华孙公 福建省上杭县张氏第一代开基祖宗
- MMKV数据存储组件的使用介绍
- autojs之多线程-Threads
- 关于esp-idf编译时ccache错误导致在libsodium库报poly1305.c.obj类文件找不到的问题
- 二进制、八进制、十进制和十六进制的转换
- python培训﹣首选马哥
- 考驾照选择 AI 教练,心态稳定不会骂人
热门文章
- 10 个 GitHub 上超火的 CSS 奇技淫巧项目,找到写 CSS 的灵感!
- 96. (GO)不同的二叉搜索树
- 遇到多个构造器参数时要考虑使用Builder
- gorm一对一 一对多 多对多查询案例
- linux sort排序工具和uniq去重工具使用示例
- Python报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 199: illegal multibyte s
- Python3 replace()实现字符串替换
- MySQL连接相关问题(查看及设置连接数)
- Java代码示例: 使用reflections工具类获取某接口下所有的实现类
- Java栈内存溢出代码实例