使用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…

(详细版)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 …

Docker部署Homepage个人引导页

个人名片: 对人间的热爱与歌颂,可抵岁月冗长🌞 个人主页👨🏻‍💻:念舒_C.ying 个人博客🌏 :念舒_C.ying Homepage | 主页 1. 安装环境2. Docker部署 原作者:無…

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

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

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

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

Spring原理-7.切点与切面

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

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

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

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

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

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

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

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

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

android 9 reboot流程

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

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

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

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

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

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

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

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖微信小程序端(十一)

加入redis缓存 1. 缓存菜品1.1 问题说明1.2 实现思路1.3 代码开发1.4 功能测试 2. 缓存套餐2.1 Spring Cache2.1.1 介绍2.1.2 常用注解2.1.3 入门案例 2.2 具体实现思路2.3 代码开发 1. 缓存菜品 1.1 问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,…

MySQL一主一从读写分离

​ MySQL主从复制 一、主从复制概念 主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从服务器中,然后在从服务器上对这些日志重新执行也叫重做,从而使得从数据库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行赋值,从…

20240110-Python实现读取当前文件夹下所有视频名称和时长并生成一张表

代码 import os import cv2 import csv# 获取当前文件夹路径 folder_path os.getcwd() # 如果当前文件夹就是目标文件夹可以直接使用 ./,否则修改为目标文件夹的路径# 获取当前文件夹中所有视频文件的名称 video_files [f for f in os.listdir(folder_path) if …

腾讯云对象存储COS计算文件的大小

properties配置类 TencentCos.APPIDxxxxx TencentCos.SecretIdxxxxxxx TencentCos.SecretKeyxxxxxx TencentCos.testBucketxxxxxx TencentCos.CosPathhttps://xxxxxxxx.cos.ap-chengdu.myqcloud.com TencentCos.regionap-chengdu读取properties中的配置 import lombok.AllArg…

kubeSphere DevOps自定义容器环境JDK11

kubeSphere DevOps自定义容器环境JDK11 🍂前言🍂增加JDK11容器环境🍁检查是否成功 🍂不生效的原因排查🍁按步骤执行如下命令 🍂前言 kubeSphere 版本v3.1.1 遇到问题:kubeSphere默认支持容器只有JDK8,目前…

Ubuntu22.04,Nvidia4070配置llama2

大部分内容参考了这篇非常详细的博客,是我最近看到的为数不多的保姆级别的教学博客,建议大家去给博主点个赞【Ubuntu 20.04安装和深度学习环境搭建 4090显卡】_ubuntu20.04安装40系显卡驱动-CSDN博客 本篇主要是基于这篇博客结合自己配置的过程中一些注…