让我们一起用Pygame Zero 画圆形 (空心圆圈、实心圆、多个小球、多层同心圆、随机颜色同心圆、有渐变效果填充圆)

简介: 让我们一起用Pygame Zero 画圆形 (空心圆圈、实心圆、多个小球、多层同心圆、随机颜色同心圆、有渐变效果填充圆)

零、时光宝盒

d856db9f380649e1af14f36f067a839a.png

逆境清醒:https://blog.csdn.net/weixin_69553582

  很多年前,我爸有次住院,那时医院没有配餐,都是病人家属送饭。那天,午餐时间,我和妈送饭给爸,同病室的病友都在吃各家家人送来的饭菜,唯有一个病床的病人没有,他很瘦,皮肤黝黑,一直在张望门口。后来,终于有他的家人来了,可能是他老婆吧,身材略胖,打扮得比较时髦。我记得她手里提着鼓鼓囊囊的袋子,我好奇她会准备什么给她先生吃,所以偷偷观察着,可出现的一幕令我至今难忘:她从袋子里拿出来一个月饼递给病床上的那个人,然后开始唠叨什么(方言我听不懂),而那个躺坐在病床上的人默默接过月饼开始吃,什么话也没说,但我看到了他眼里流下的泪,顺着脸庞悄悄流进嘴里,被那个人混着月饼一起吞进肚子里。。。

  那时不是中秋节,中秋过了很久。那天后,每次吃饭时间前,那个病人都会借故离开病房,我猜他是不想看到别人都有热饭菜吃,而他。。。月饼属于高糖高脂食物,并不适合病人。他老婆可能不愿意花时间煮饭菜,所以用最简单的方法(买一个月饼)解决他的病用餐问题。对一个人是有真感情还是应付,一个月饼告诉了所有人答案。

  最近演员王星泰缅边境失联事件,在营救王星的过程中,他的女友嘉嘉起到了很大作用,事情发生了,她没有慌乱只会哭,而是沉着冷静,思路清晰,勇敢果断。当然,这里面肯定有其他人的帮助。但,她对王星的感情是实实在在的,她没有在困难下轻易放弃男友。王星运气其实不算差,起码他能在发生危险前已经遇到了爱他珍惜他不轻易放弃他的人,这种运气不是人人都有。我没有福气等到我一直等的人出现,但我希望你们都能早日遇到懂得珍惜你们的人。

逆境清醒2025.1.10

7f8eafc867aa425cab7d368ee0eb4dd8.gif

一、绘制空心圆圈

效果如下图所示:
785dc55a34d34f3a8b9ed24f94f4535f.png

代码如下:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——画圆形"
WIDTH = 300
HEIGHT = 300

def draw():
    screen.fill('white')
    screen.draw.circle((150, 150), 100, 'black')

pgzrun.go()

运行效果为在窗口中画了一个圆,

def draw()

表示定义了一个绘图函数,冒号后面的语句表示具体的绘制工作。

    screen.fill('white')

screen.fill('white')语句中,
screen表示屏幕,fill表示用括号里的颜色来填充整个背景画面。
代码表示显示背景是白色。

    screen.draw.circle((150, 150), 100, 'black')

screen.draw.circle((150, 150), 100, 'black')语句绘制了一个圆圈。

其中screen表示屏幕,draw为绘制的英文单词,circle表示圆圈;
后面的3个参数,
(150, 150),表示圆的中心位置坐标,
100表示圆的半径,
'black'表示圆的颜色为黑色。

二、绘制实心圆

绘制实心圆,效果如下:
3213ea72feb04c01b75953c8c0828eb2.png

代码如下:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——画实心圆形"
WIDTH = 300
HEIGHT = 300

def draw():
    screen.fill('white')
    #画实心圆形
    screen.draw.filled_circle((150, 150), 100, 'purple')
pgzrun.go()

运行代码,运行效果为在窗口中画了一个实心圆,

这里使用了filled_circle函数,filled_circle就是填充圆的意思。

screen.draw.filled_circle((150, 150), 100, 'purple')

其中screen表示屏幕,draw为绘制的英文单词,filled_circle表示填充圆;
后面的3个参数,
(150, 150),表示圆的中心位置坐标,
100表示圆的半径,
'purple'表示圆的颜色为黑色。

三、画多个静止小球
要画多个小球,我们需要了解一下zero坐标系,

18c90f733f444377b574cb2984583553.png

Pygame Zero 的坐标系以左上角为原点 ( 0, 0 )
  游戏窗口的绘制区域采用直角坐标系,左上角的坐标为(0,0)。
  横轴方向由x坐标表示,取值范围为0到最大横坐标,例如x=800;
  纵轴方向由y坐标表示,取值范围为0到最大纵坐标,例如y=600。
  游戏窗口中任一点的位置可由其(x,y)坐标表示。

绘制多个静止实心圆,效果如下:
3e43161d22e745118cf2eb33b7a6837f.png

运行以下代码,即可在对应的坐标位置绘制出图所示的3个小球:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——画多个静止小球"
WIDTH = 500
HEIGHT = 300
def draw():
    # 画多个静止小球
    screen.fill('white')
    screen.draw.filled_circle((100, 150), 50, 'red')
    screen.draw.filled_circle((250, 150), 50, 'green')
    screen.draw.filled_circle((400, 150), 50, 'blue')
pgzrun.go()

四、绘制多层同心圆

4.1、绘制5层同心圆

绘制5层同心圆,效果如下:
770c54a71ec041c7b2cb7ed8af52c16c.png

相关的代码如下:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——绘制多层同心圆"
WIDTH = 300
HEIGHT = 300

def draw():
    # 绘制多层同心圆
    screen.fill('white')
    screen.draw.circle((150, 150), 20, 'black')
    screen.draw.circle((150, 150), 40, 'black')
    screen.draw.circle((150, 150), 60, 'black')
    screen.draw.circle((150, 150), 80, 'black')
    screen.draw.circle((150, 150), 100, 'black')
pgzrun.go()

4.2、绘制20层同心圆

绘制20个同心圆,效果如下图所示:
809dcf4197354e9f809dc3a6707999b7.png

代码如下:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——绘制多层同心圆"
WIDTH = 400
HEIGHT = 400

def draw():
    screen.fill('white')
    # 绘制多层同心圆
    for r in range(1, 201, 10):
        screen.draw.circle((200,200), r, 'black')
pgzrun.go()

​4.3、绘制条纹相间的同心圆

绘制绘制条纹相间的同心圆,效果如下图所示:
aacc21b13fa34f049dc3efb44e13c841.png

相关代码如下:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——绘制条纹相间的同心圆"
WIDTH =500
HEIGHT =500

def draw():
    screen.fill('white')
    for r in range(250, 0, -40):
        screen.draw.filled_circle((250, 250), r, 'purple')
        screen.draw.filled_circle((250, 250), r-20, 'white')

pgzrun.go()

4.4、绘制随机颜色的同心圆

效果如下图所示:
0c45b61dc7c840819a94758fa0d6f056.png

相关代码如下:

import pgzrun
import random
TITLE = "逆境清醒编程用法示例pgzrun——绘制随机颜色的同心圆"
WIDTH =500
HEIGHT =500

def draw():
    screen.fill('white')
    #绘制随机颜色的同心圆
    for r in range(250, 0, -10):
        screen.draw.filled_circle((250,250), r,\
        (random.randint(0, 255), random.randint(0, 255),\
        random.randint(0, 255)))

pgzrun.go()

五、绘制有渐变效果的填充圆

绘制有渐变效果的填充圆,效果如下图所示:
56c52d5b20004bf9a3554336d85f3419.png

相关代码如下:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——绘制渐变圆球"
WIDTH =300
HEIGHT =300

def draw():
    screen.fill('white')
    #绘制渐变圆球
    for r in range(128, 1, -5):
        screen.draw.filled_circle((150, 150),r, (r, 0,r))

pgzrun.go()

调整代码,我们还可以做出其他效果,例如实现有立体效果的小球,如下图所示:

feb0ea1e9e25463f900c69722d744396.png

本系列Pygame Zero(pgzrun)文章:

1、Pygame Zero(pgzrun)详解(简介、使用方法、坐标系、目录结构、语法参数、安装、实例解释)

2、让我们一起用Pygame Zero 画圆形(空心圆圈、实心圆、多个小球、多层同心圆、随机颜色同心圆、有渐变效果填充圆)

3、用Pygame Zero 画矩形(空心、实心、多个矩形、多层同心矩形、彩虹条矩形、条纹相间、随机颜色矩形、特殊效果、渐变效果)

相关文章
|
8天前
|
Python
用Pygame Zero 画矩形 (空心、实心、多个矩形、多层同心矩形、彩虹条矩形、条纹相间、随机颜色矩形、特殊效果、渐变效果)
用Pygame Zero 画矩形 (空心、实心、多个矩形、多层同心矩形、彩虹条矩形、条纹相间、随机颜色矩形、特殊效果、渐变效果)
62 40
|
8天前
|
API 开发者 Python
Pygame Zero(pgzrun)详解(简介、使用方法、坐标系、目录结构、语法参数、安装、实例解释)
Pygame Zero(pgzrun)详解(简介、使用方法、坐标系、目录结构、语法参数、安装、实例解释)
56 17
|
开发框架 Python
Python游戏开发入门:pygame实例运动的小球-5
Python游戏开发入门:pygame实例运动的小球-5
164 0
Python游戏开发入门:pygame实例运动的小球-5
|
8月前
|
Python
Python使用pygame播放MP3
Python使用pygame播放MP3
106 0
|
2月前
|
JSON 开发工具 git
基于Python和pygame的植物大战僵尸游戏设计源码
本项目是基于Python和pygame开发的植物大战僵尸游戏,包含125个文件,如PNG图像、Python源码等,提供丰富的游戏开发学习素材。游戏设计源码可从提供的链接下载。关键词:Python游戏开发、pygame、植物大战僵尸、源码分享。
|
5月前
|
定位技术 Python
【python】python基于pygame坦克大战游戏设计(源码+图像+操作说明)【独一无二】
【python】python基于pygame坦克大战游戏设计(源码+图像+操作说明)【独一无二】
110 1
|
5月前
|
Linux iOS开发 MacOS
【Python】Python基于Pygame疯狂赛车游戏设计(源码+报告)【独一无二】
【Python】Python基于Pygame疯狂赛车游戏设计(源码+报告)【独一无二】
142 1
|
5月前
|
Python
【python】python基于pygame弹珠游戏设计(源码)【独一无二】
【python】python基于pygame弹珠游戏设计(源码)【独一无二】

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等