Pygame中画圆

news2024/11/16 15:57:01

在Pygame中,可以通过draw模块下的circle()函数来进行画圆。

1 准备工作的完成

在画圆之前需要导入Pygame模块、初始化Pygame模块以及创建Surface对象。

import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((600,500))

其中,screen是创建的Surface对象。

2 画圆的实现

2.1 circle()函数的用法

circle()函数有两种用法,一种是基本型用法,另一种是扩展性用法。

2.1.1 基本型用法

circle()函数基本型用法的格式是

circle(surface, color, center, radius)

其中,参数surface指的是要画圆的Surface对象;color指定了圆的颜色(由参数width决定该颜色是画圆的线的颜色还是填充色),该参数的类型是Color类或者表示颜色的元组;center指定了圆心的位置,其类型是Vector2类或者表示位置的元组或列表;radius表示圆的半径,该参数的类型是整型或者浮点型,如果该参数的值小于1,则不进行画圆的动作。circle()函数的返回值是Rect类型的变量,表示画出的圆的范围。

2.1.2 扩展性用法

circle()函数扩展型用法的格式是

circle(surface, color, center, radius, width=0, draw_top_right=None, draw_top_left=None, draw_bottom_left=None, draw_bottom_right=None)

其中参数surface、color、center和radius与基本型用法相同;width表示画圆的线的粗细程度,当width的值是0时,参数color表示圆的填充颜色,当width的值大于0时,参数color表示画圆的线的颜色,width表示线的粗细,当width的值小于0时,忽略color和width参数;接下来的四个参数分别指定是否只画圆的右上、左上、左下和右下四个部分,True表示只画指定部分。

2.2 circle()函数的使用

2.2.1 基本型的使用

circle()函数基本型的代码如下所示:

color = 255,0,0
center = 300,200
radius = 50
pygame.draw.circle(screen, color, center, radius)
pygame.display.update()

其中color、center和radius变量分别指定了要画圆的颜色、圆心位置和半径;screen是“1 准备工作的完成”中创建的Surface对象。pygame.display.update()函数的作用是将画的圆在screen中显示出来。代码运行效果如图1所示。

图1 基本型画圆

2.2.2 扩展型的使用

circle()函数扩展性的代码如下所示:

pygame.draw.circle(screen, color, center, radius,0,True, False,True,False)

其中,参数width的值0;draw_top_right和draw_bottom_left的值是True;draw_top_left和draw_bottom_right的值是False,画出的效果如图2所示。

图2 扩展型画圆

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/354076.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot实现 内置 定时 发送邮件功能

前段时间因为公司用了定时任务,所以写了2篇定时任务的文章,一篇是正常如何在Springboot 编程中如何去使用quartz ,第二篇就是 正常业务性的增删改查,今天我们来看下如何使用 quartz 去定时给女朋友发邮件 ,结尾会放上完…

智能电子办公标牌解决方案

一、WiFi智能电子标牌 智能电子办公标牌将它放在任何地方,以可视化会议日程、约会信息、行动计划和协作任务,使团队能够更有效地工作并更好地利用空间。 优势: ● 超低功耗,充一次电管用一年,支持Type-C接口充电 ●…

Linux之进程

一.冯诺依曼体系 在计算机中,CPU(中央处理器)是不直接跟外部设备直接进行通信的,因为CPU处理速度太快了,而设备的数据读取和输入有太慢,而是CPU以及外设直接跟存储器(内存)打交道&am…

Python 之 Matplotlib 柱状图(竖直柱状图和水平柱状图)、直方图和饼状图

文章目录一、柱状图二、竖直柱状图1. 基本的柱状图2. 同位置多柱状图3. 堆叠柱状图三、水平柱状图1. 基本的柱状图2. 同位置多柱状图3. 堆叠柱状图四、直方图 plt.hist()1. 返回值2. 添加折线直方图3. 不等距分组4. 多类型直方图5. 堆叠直方图五、饼状图 pie()1. 百分比显示 pe…

初步使用MSYS2

在此镜像站点下载, https://mirror.tuna.tsinghua.edu.cn/help/msys2/ 根据资料, MSYS2 (Minimal SYStem 2) 是一个MSYS的独立改写版本,主要用于 shell 命令行开发环境。同时它也是一个在Cygwin (POSIX …

FPGA 10M50DCF672C7G/10M50DCF672C8G/10M50DCF672I7G工业、汽车和消费应用

FPGA现场可编程门阵列 10M50DCF672C7G/10M50DCF672C8G/10M50DCF672I7G 封装FBGA672FBGA672封装图(明佳达电子)描述MAX 10器件是单芯片、非易失性低成本可编程逻辑器件(pld),用于集成最优的系统组件集。MAX 10设备的亮点包括:内部存储双配置闪…

Spring Data JPA 中 CrudRepository 和 JpaRepository 的区别

1 问题描述Spring Data JPA 中,CrudRepository 和 JpaRepository 有何区别?当我在网上找例子的时候,发现它们可以互相替换使用。它们有什么不同呢?为什么你习惯用其中的一个而不是另一个呢?2 CrudRepository 和 JpaRep…

ArcGIS网络分析之发布网络分析服务(二)

在上一篇中讲述了如何构建网络分析数据集,本篇将讲解如何发布网络分析服务。本文将使用上一篇中建立的网络数据集,下载地址在上一篇博文的最后已给出。 之前我们已经实现了基于ArcMap中的网络分析,但是仅仅支持本地是万万不够的,这里我们的目的就是将我们建好的网络分析图…

【OJ】两个圆

📚Description: 直角坐标系内现有两个半径相等的圆,问两圆的位置关系。 位置关系有:重合,相切,相离,相交; 若两圆相交,需要求出两圆的重叠面积。 ⏳Input: 输入包含多组数据&a…

【项目精选】户籍管理系统(视频+论文+源码)

点击下载源码 当今社会人们生活质量越来越高,人们对生活品质的追求不断提升,对于孩子求学,变更住所等情况时有发生,因此对于户籍变动管理就显得十分重要,管理用户的户籍信息可以有效防止信息错乱,信息管理过…

百度沈抖:文心一言将通过百度智能云对外提供服务

2月17日,在2023 AI工业互联网高峰论坛上,百度智能云宣布“文心一言”将通过百度智能云对外提供服务,为产业带来AI普惠。 百度集团执行副总裁、百度智能云事业群总裁沈抖表示,“文心一言”是基于百度智能云技术打造出来的大模型&a…

A Time Series is Worth 64 Words(PatchTST模型)论文解读

摘要 我们提出了一种高效的基于Transformer设计的模型,用于多变量时间序列预测和自我监督表征学习(self-supervised learning)。它基于两个关键部分:1、将时间序列分隔成子序列级别的patches,作为Transformer的输入&a…

Allegro负片层不显示反盘的原因和解决办法

Allegro负片层不显示反盘的原因和解决办法 在用Allegro做PCB设计的时候,负片设计是较为常用的一种方式,有时会出现打开负片层却看不到反盘的情况,如下图 L2层是负片层 L2层仍然只能看到盘 如何才能看到反盘显示的效果,具体操作如下 首先确定L2层层叠里面设置的是负片

java ssm爱宠宠物医院挂号预约系统管理系统设计与实现

本课题所实现的宠物医院网站是基于网页,它可以实现网上预约挂号,评价等基本功能。用户只要手边有一部手机或者一台电脑,可以上网浏览网页,便可以使用本系统,没有时间和地点的限制,使得就医预约,…

枚举类(enum)

定义:在某些情况下,一个类的实例对象是有限且固定的,可将该类称为“枚举类”。枚举类是JDK 1.5 之后提出来的。例如:四季只有春夏秋冬4个季节,性别只有男女2个,故四季类和性别类均可称为“枚举类”。 在自…

python(8.5)--列表习题

目录 一、求输出结果题 二、计算列表元素个数 三、查找是否存在某元素 四、删除某元素 五、如何在列表中插入元素 六、如何从列表中删除重复的元素 七、 如何将列表中的元素按照从小到大的顺序排序 八、从列表中删除重复的元素 九、大到小的顺序排序 一、求输出结…

【源码解析】Ribbon和Feign实现不同服务不同的配置

Ribbon服务实现不同服务,不同配置是通过RibbonClient和RibbonClients两个注解来实现的。RibbonClient注册的某个Client配置类。RibbonClients注册的全局默认配置类。 Feign实现不同服务,不同配置,是根据FeignClient来获取自定义的配置。 示…

【大数据】Apache Spark 3.3.0 正式发布,新特性详解

简介 Apache Spark 3.3.0 从2021年07月03日正式开发,历时近一年,终于在2022年06月16日正式发布,在 Databricks Runtime 11.0 也同步发布。这个版本一共解决了 1600 个 ISSUE,感谢 Apache Spark 社区为 Spark 3.3 版本做出的宝贵贡…

Redis学习【8】之Redis RDB持久化

文章目录Redis 持久化1 持久化基本原理2 RDB(Redis DataBase) 持久化2.1 持久化的执行2.2 手动 save 命令2.3 手动 bgsave 命令2.4 自动条件触发2.5 查看持久化时间3 RDB 优化配置3.1 save3.2 stop-write-on-bgsave-error3.3 rdbcompression3.4 rdbchecksum3.5 sanitize-dump-p…

代码随想录算法训练营第六十三天| 503.下一个更大元素II、42. 接雨水

Leetcode - 503这题其实和下一个更大元素那题一样,只是说可以找自己前面的元素,那我索性就把遍历范围从本序列延长到两个相同序列。这样某个元素寻找下一个更大元素到本序列末尾后还可以继续往下,也就是从序列头开始找。这里依旧是可以用单调…