1、开始绘制图形需要先绘制一个窗口,创建一个pygame窗口,但是窗口并未交互。

     1.1 pygame 有一个事件循环(event loop)不断在检查用户在做什么,如按键、移动鼠标或关闭窗口。要想保持pygame事件循环一直运行,需要使用while循环

import  pygame
pygame.init()
screen = pygame.display.set_mode([640,480])

# 使用pygame窗口正常工作
import  pygame
pygame.init()
screen = pygame.display.set_mode([640,480])
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running =False
pygame.quit()

创建一个pygame窗口

2、在窗口中画图

    2.1 如果希望让动画尽可能流畅,不必在每次对图形进行修改都更新显示,可以做很多修改后在“翻转”(flip)到图形的新版本。这样会一次显示所有的修改,而不会只显示画了一半的圆(或者其他)

    2.2 当前屏幕与下一屏幕,做完下一屏的所有修改后,再翻转到下一屏,就能看到这些改变。

    建立一个圆:2.3 :在哪个表面进行画圆   2.4 :用什么颜色来画  2.5: 在什么位置画 2.6:圆的大小 2.7  线宽 

   2.3.1:pygame 表面 :在缓冲区进行画图,然后“翻转显示表面”,来显示完全绘制的图像。

   2.4.1:pygame颜色:[R,G,B]  [255,255,255]

   2.5.1    位置:对应X轴及对应Y轴 

   2.6.1  形状的大小:指定长宽,圆心,半径(left,top,width,height)

   2.7.1 线宽 :0 代表整个填充,

 

# 在窗口中画一个圆

import pygame,sys
pygame.init()
screen = pygame.display.set_mode([640,480])
screen.fill([255,255,255])       # 用白色背景填充窗口
pygame.draw.circle(screen,[255,0,0],[100,100],30,0)  # 画一个圆
pygame.display.flip()
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running =False
pygame.quit()

在窗口画一个圆

# 在窗口的中心位置画圆

import pygame,sys
pygame.init()
screen = pygame.display.set_mode([640,480])
screen.fill([255,255,255])       # 用白色背景填充窗口
pygame.draw.circle(screen,[0,255,0],[320,240],30,0)  # 在中心位置画一个圆
pygame.display.flip()
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running =False
pygame.quit()

在中心位置画一个圆

# 在窗口画一个矩形
import pygame,sys
pygame.init()
screen = pygame.display.set_mode([640,480])
screen.fill([255,255,255])       # 用白色背景填充窗口
pygame.draw.rect(screen,[0,0,255],[250,150,300,200],0)  #  画一个矩形
# my_list =[250,150,300,200]
# pygame.draw.rect(screen,[0,0,255],my_list,0)          #  矩形的位置与大小可以是一个简单的的数字列表或元组
# my_rect= pygame.Rect(250,150,300,200)
# pygame.draw.rect(screen,[0,0,255],my_rect,0)          # 可以是一个pyganme 的 rect 对象
pygame.display.flip()
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running =False
pygame.quit()

在窗口画一个矩形

# 使用draw.rect 实现艺术创作

import pygame,sys,random
pygame.init()
screen = pygame.display.set_mode([640,480])
screen.fill([255,255,255])
for i in range(100):
    width = random.randint(0,250)
    height = random.randint(0,100)
    left = random.randint(0,500)
    top = random.randint(0,400)
    pygame.draw.rect(screen,[0,0,0],[left,top,width,height],1)
pygame.display.flip()
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
pygame.quit()

使用draw.rect进行现代艺术

# 用大量很小的矩形来画曲线

import pygame,sys
import math
pygame.init()
screen = pygame.display.set_mode([640,480])
screen.fill([255,255,255])
for x in range (640):
    y = int(math.sin(x/640.0 * 4 * math.pi)*200+240)       # 计算每个点的y坐标(垂直坐标)
    pygame.draw.rect(screen,[0,0,0],[x,y,1,1],1)          # 使用小矩形来画点
pygame.display.flip()
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running=False
pygame.quit()

用大量的矩形来画曲线

3、连接多个点 

    3.1 画线的表面,颜色,是否要将第一个点和最后一个点连接起来,使形状闭合(closed),正弦曲线不闭合(FALSE); 要连接点的列表;线宽 

# 连接多个点

import pygame,sys
import math
pygame.init()
screen = pygame.display.set_mode([640,480])
screen.fill([255,255,255])
PlotPoints =[]
for x in range (640):
    y = int(math.sin(x/640.0 * 4 * math.pi)*200+240)
    PlotPoints.append([x,y])                                    # 将各个点的x,y 的值添加至列表中
pygame.draw.lines(screen,[255,0,0],False,PlotPoints,2)          # 使用pygame.draw.lines()画线
pygame.display.flip()
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running=False
pygame.quit()

完美的正弦曲线

     3.2 连接多个点

  

 

 

 

 

   

 

版权声明:本文为wangchenghua原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wangchenghua/p/11277177.html