使用pygame.draw绘制基本图形

import pygame# 初始化pygame
pygame.init()# 创建显示窗口
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("绘制基本图形")# 定义颜色
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)# 绘制直线
pygame.draw.line(screen, BLUE, (0, 0), (640, 480), 5)# 绘制折线
points = [(50, 50), (100, 100), (150, 50), (200, 100), (250, 50)]
pygame.draw.lines(screen, GREEN, False, points, 3)# 绘制三角形
triangle_points = [(300, 50), (350, 150), (250, 150)]
pygame.draw.polygon(screen, RED, triangle_points, 0)# 绘制矩形
rect = pygame.Rect(400, 50, 100, 100)
pygame.draw.rect(screen, BLUE, rect, 2)# 绘制圆形
pygame.draw.circle(screen, GREEN, (550, 100), 50, 0)# 绘制椭圆形
ellipse_rect = pygame.Rect(50, 250, 200, 100)
pygame.draw.ellipse(screen, RED, ellipse_rect, 3)# 绘制弧线
arc_rect = pygame.Rect(350, 250, 100, 100)
pygame.draw.arc(screen, BLUE, arc_rect, 0, 3.14, 2)# 刷新屏幕
pygame.display.flip()# 等待退出
while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()exit()

这段代码使用了Python的Pygame库来绘制几种基本图形。它首先通过初始化Pygame来确保可以使用其功能。然后,它创建了一个640x480像素大小的显示窗口,并设置了窗口标题为"绘制基本图形"。

代码中定义了一些颜色常量,如黑色、白色、红色、绿色和蓝色,用于绘制图形时指定颜色。

接下来,代码使用Pygame提供的函数绘制了几种基本图形。它绘制了一条直线,一条折线,一个三角形,一个矩形,一个圆形和一个椭圆形。每个图形都可以指定颜色、位置、尺寸和线宽等属性。

最后,代码通过调用pygame.display.flip()刷新屏幕,将所有的图形绘制到屏幕上,并更新显示。然后,它进入一个无限循环,等待用户关闭窗口。当用户点击窗口的关闭按钮时,程序会退出Pygame并终止程序运行。

这段代码可以作为一个简单的示例,展示了如何使用Pygame库来绘制基本图形,并且可以通过修改参数来实现各种不同的效果。

 

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

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

相关文章

用java实现Client和Server之间的互相通信

概要:看过我之前文章的人都知道,client和server之间的通信必不可少的就是socket。而java已经帮我们做了很多事情。 创建Server端 第一步,创建ServerSocket 这个从名字上就可以看出来,服务器上的socket 0.0 ServerSocket ser…

算法篇:动态规划II

35、647. 回文子串 ①状态表示&#xff1a;dp[i][j]表示&#xff1a;s字符串[i&#xff0c;j]的子串&#xff0c;是否是回文串。(i<j) ②状态转移方程&#xff1a; if(s[i]!s[j]) dp[i][j]false; else if(s[i]s[j]) { if(ij||i1j)dp[i][j]true; else dp[i1][j-1]; }…

SpringMVC-04

RESTful是一种针对Web服务的软件架构风格&#xff0c;它基于HTTP协议和其他标准&#xff0c;用于构建可扩展、可维护和可拓展的网络应用程序。 RESTful风格的设计原则包括以下几点&#xff1a; 资源&#xff1a;将应用程序的所有内容都视为资源&#xff0c;每个资源都有唯一的…

(详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models

Haoran Wei1∗, Lingyu Kong2∗, Jinyue Chen2, Liang Zhao1, Zheng Ge1†, Jinrong Yang3, Jianjian Sun1, Chunrui Han1, Xiangyu Zhang1 1MEGVII Technology 2University of Chinese Academy of Sciences 3Huazhong University of Science and Technology arXiv 2023.12.11 …

通过dockerfile基于centosdocker镜像和postgresql12的离线安装包制作单机版的Docker镜像

可以按照以下步骤来制作一个基于CentOS Docker镜像和PostgreSQL 12离线安装包的单机版Docker镜像&#xff1a; 首先&#xff0c;创建一个空文件夹作为工作目录。 将CentOS Docker镜像保存到本地文件系统中&#xff0c;命名为centos.tar。你可以从Docker Hub下载CentOS Docker镜…

Docker部署Homepage个人引导页

个人名片&#xff1a; 对人间的热爱与歌颂&#xff0c;可抵岁月冗长&#x1f31e; 个人主页&#x1f468;&#x1f3fb;‍&#x1f4bb;&#xff1a;念舒_C.ying 个人博客&#x1f30f; &#xff1a;念舒_C.ying Homepage | 主页 1. 安装环境2. Docker部署 原作者&#xff1a;無…

flutter release包使用adb查看日志排查错误实践

release包给出去后发现出现无法启动的情况&#xff0c;需要flutter开发排查 &#xff0c;直接将release包安装到模拟器 使用adb 去连接模拟器 我这边是MuMu模拟器 adb connect 127.0.0.1:7555 然后查看设备列表 adb devices 直接输入0 即选择第一个设备 然后使用 adb logcat …

Python爬虫---Scrapy项目的创建及运行

Scrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而编写的应用框架。 可以应用在包括数据挖 掘&#xff0c;信息处理或存储历史数据等一系列的程序中。 1. 安装scrapy&#xff1a; pip install scrapy 注意&#xff1a;需要安装在python解释器相同的位置,例如&#xf…

Spring原理-7.切点与切面

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术&#x1f525;如果感觉博主的文章还不错的…

静态网页设计实践(HTML+CSS)

一、前端程序员必会三大编程语言 &#xff08;一&#xff09;HTML&#xff08;.html/.htm&#xff09; 超文本标记语言&#xff08;HyperText Markup Language&#xff0c;简称:HTML&#xff09;是一种用于创建网页的标准标记语言。HTML是一种基础技术&#xff0c;常与CSS、Ja…

高通rb5的fastboot设备识别不了及驱动安装问题

Android fastboot驱动无法安装和识别问题-CSDN博客 以上为转载出处。

批量求和(文件)

请编写函数&#xff0c;从一个文件中读取实数求和&#xff0c;并将结果写入另一个文件。 函数原型 void BatchAdd(FILE *in, FILE *out); 说明&#xff1a;参数 in 和 out 为指示两个文件的指针。函数从 in 所指文件中的读出数据&#xff0c;将结果写入 out 所指的文件中。 …

C语言中socket模块、线程

socket编程 windows下TCP协议 测试环境基于Win10 x64&#xff0c;Visual Studio 服务端代码1. 初始化Winsock库&#xff1b;2. 创建套接字&#xff1b;3. 配置服务端地址&#xff1b;4. 绑定套接字&#xff1b;5. 监听连接&#xff1b;6. 接收连接&#xff1b;7. 发送数据给客…

使用global mapper将分块DSM/DOM合并导出

使用global mapper将分块DSM/DOM合并导出 使用context capture生产dom/dsm时通常因为内存问题而选择分块生产&#xff0c;那么得到的dsm/dom则是一块一块的&#xff0c;如下&#xff1a; 那么为了合并成一张影像&#xff0c;可以使用强大的地图软件 Global Mapper&#xff0c…

番外篇-区块链基础知识入门

今天聊聊番外篇之Web3、区块链的基础知识~ 1. 区块链是如何工作的&#xff1f; Hash算法 将输入的数据映射为一个固定长度的字符串字符串是64长度&#xff0c;16进制&#xff08;2^4&#xff09;&#xff0c;4 * 64 256【SHA256】hash演示&#xff1a;https://andersbrownwo…

android 9 reboot流程

机器出现开机 自动进入fastboot模式。可能是init 那个进程挂了 然后调用了 RebootSystem(ANDROID_RB_RESTART2, “bootloader”); 函数进入重启流程&#xff0c;然后重启后进入fastboot 浅读一下reboot流程和怎么进入的fastboot 比如说是那个进程挂了调用了这个函数&#xff0c…

实现目标检测中的数据格式自由(labelme json、voc、coco、yolo格式的相互转换)

在进行目标检测任务中&#xff0c;存在labelme json、voc、coco、yolo等格式。labelme json是由anylabeling、labelme等软件生成的标注格式、voc是通用目标检测框&#xff08;mmdetection、paddledetection&#xff09;所支持的格式&#xff0c;coco是通用目标检测框&#xff0…

cosmos及特定应用程序的区块链

特定应用程序的区块链,简单来说&#xff0c;一个区块链就是一个专门的应用程序。为了实现某一特定的去中心化应用而专门实现一个区块链。 传统的用智能合约构建去中心化应用不行吗&#xff1f; 灵活性不足&#xff1a;智能合约本质上受到虚拟机本身的限制。例如&#xff0c;以…

BLHeli_S 代码分析---BLHeli.asm头部声明文件分析

BLHeli_S 代码之 A.inc 分析 指令含义及作用 $NOMOD51使编译器不使能预定义的8051符号&#xff0c;避免产生重复定义的错误 示例代码1 IF BESCNO XP_3A_Main MODE EQU 0 ; Choose mode. Set to 0 for main motor $include (XP_3A.inc) ; Select XP 3A pinout ENDIF…

【Spring Boot】SpringBoot maven 项目创建图文教程

创建一个Spring Boot项目并使用Maven进行构建是一项相对简单的任务。以下是使用IntelliJ IDEA创建Spring Boot Maven项目的详细教程&#xff1a; 步骤 1&#xff1a;安装 IntelliJ IDEA 确保你已经安装了最新版本的 IntelliJ IDEA。你可以从官方网站下载并安装。 步骤 2&am…