这是学习嵩天老师的课程,习得并引以为笔记。
图形绘制就是在屏幕上绘制简单的图形,如直线、曲线之类的,绘制图形,Pgame使用pygame.draw来实现,图形绘制后,返回一个矩形Rect类表示该形状,pygame.Rect表示一个矩形区域的类,用于存储坐标和长度信息,pygame用Rect类来操作图形/图像等元素,仅表达矩形范围,所以pygame的Rect有四个参数分别是左上角(left,top)还有宽度(width)和高度(height)一般来说,只要确定了这四个参数,就可以唯一确定一个矩形即范围,Rect类有很多属性,每一个属性返回一个值或者一个代表坐标的元素值,下面给出一些值(更多的值请参考:rect类详情 顺便查看操作Rect类的方法):
pygame.draw 可以操作绘制矩形.rect()、直线.line()、多边形.polygon()、连续多线.lines()、圆形.circle()、椭圆弧形.arc() 等等,下面以绘制矩形为例,进行展示:
import pygame,sys
pygame.init()
screen = pygame.display.set_mode((600,400))
pygame.display.set_caption("Pygame图形绘制")
GOLD = 255,251,0
RED = pygame.Color('red')#定义颜色
#绘制两个图形
r1rect = pygame.draw.rect(screen,GOLD,(100,100,200,100),5)#有填充颜色
r2rect = pygame.draw.rect(screen,RED,(210,210,200,100),0)#无填充
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
pygame.display.update()
上面是在屏幕绘制两个矩形的代码,试一下效果吧!
矩形的绘制是比较简单的,其它图形的绘制也跟举行的差不多,下面给出一些图形绘制的参数方法:
还有一些没给出,大家可以自己参悟一下,下面再来写一段程序代码,看看绘制出什么东西来吧
#!/sur/bin/env python
# -*- coding:utf-8 -*-
# author: fengderong time:2019/7/23
import pygame,sys
from math import pi #引入圆周率
pygame.init()
screen = pygame.display.set_mode((600,400))
pygame.display.set_caption("Pygame图形绘制")
#定义绘制颜色
GOLD = 255,251,0
RED = pygame.Color('red')
WHITE = 255,255,255
GREEN = pygame.Color('green')
#r1rect = pygame.draw.rect(screen,GOLD,(100,100,200,100),5)#有填充颜色
#r2rect = pygame.draw.rect(screen,RED,(210,210,200,100),0)#无填充
e1rect = pygame.draw.ellipse(screen,RED,(50,50,500,300),3)#椭圆
c1rect = pygame.draw.circle(screen,GREEN,(200,180),30,5)#圆
c2rect = pygame.draw.circle(screen,GREEN,(400,180),30)#圆
r1rect = pygame.draw.rect(screen, GOLD,(170,130,60,10),3)#矩形
r2rect = pygame.draw.rect(screen,GOLD,(370,130,60,10))
plist = [(295,170),(285,250),(260,280),(340,280),(315,250),(305,170)]#多线的顶点
l1rect = pygame.draw.lines(screen,GREEN,True,plist,2)#绘制多线
a1rect = pygame.draw.arc(screen,RED,(200,220,200,100),1.4*pi,1.9*pi,3)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
pygame.display.update()
这个程序运行出来是一个挺有趣的图形,有兴趣的还可以继续加深绘制,甚至可以用来会一幅画出来试试!!