python的pygame怎样绘制图形�

Admin 2021-08-19 群英技术资�

    我们通过python的pygame中draw模块的函数在窗口上绘�,可以绘制的图形包�:线条、矩彀多边形、圆、椭圆、圆弧等等。这篇文章就给大家介绍一下,如何使用pygame绘制矩形框、直线和线条。感兴趣的朋友就继续往下看吧�

    一、安�

    � cmd 命令中输入: pip install pygame

    即可安装成功�

    二、第一个代码实�

    代码快里面有注释,想必大家都可以看懂的�

import pygame
import sys
import pygame.locals


pygame.init()
# 初始�

screen = pygame.display.set_mode((500, 600))
# 设置屏幕的大�

pygame.display.set_caption("First Demo")
# 设置屏幕的名�

Seashell = 255, 245, 238
# 设置 RGB 颜色

NavyBlue = 0, 0, 128
# 设置 RGB 颜色

while True:
    for event in pygame.event.get():
        if event.type == pygame.locals.QUIT or event.type == pygame.locals.KEYDOWN:
            # 如果点击关闭按钮,或者按下任意键,那么退出程�
            sys.exit()
        else:
            pass
    screen.fill(Seashell)
    position = (250, 300)
    pygame.draw.circle(screen, color=NavyBlue, center=position, radius=100,  width=50)
    pygame.display.update()


    运行结果

    这个实例只需要强调一下的是:

    1、QUIT表示按下关闭的按钮,KEYDOWN是按下任意一个按键,这两个都是pygame内部自己定义好的常量�

    2、颜色可以用RGB进行表示

    三、绘制一个矩形框

import pygame
import pygame.locals
import sys

pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption("Drawing Rectangles")
# 设置名称
Blue = 0, 0, 255
Purple = 160, 32, 240
while True:
    for event in pygame.event.get():
        if event.type == pygame.locals.QUIT or event.type == pygame.locals.KEYDOWN:
            # 还是如果说点击了关闭的按键,或者是按下了任意键,那么就可以关闭程序�
            sys.exit()
    pos = (300, 250, 100, 100)
    # 这里� pos 不仅设置了位置,而且设置了长度以及宽�
    screen.fill(Purple)
    pygame.draw.rect(screen, Blue, pos, width=10)
    # width 是线条的宽度,screen 表示指定使用哪一个屏幕进行显�
    pygame.display.update()


    代码运行的结果;

    四、绘制矩形框的进阶版�

import pygame
import pygame.locals
import sys
import time


pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption("Drawing Moving Rectangle")

color1 = 139, 0, 139
color2 = 104, 131, 139

px = 200
py = 300
# 初始化的位置应该放在外面,否则会一直在一个地方绘制图形了

vx = 10
vy = 20
# 初始化速度也应该放在外面,否则会一直以恒定的速度运动


while True:
    for event in pygame.event.get():
        if event.type in (pygame.locals.QUIT, pygame.locals.KEYDOWN):
            # 如果是按下了任意键或者是点击了关闭按钮,那么退出程�
            sys.exit()

    # vx = 10
    # vy = 20

    # px = 200
    # py = 300

    px += vx
    py += vy
    if px <= 0 or px + 100 >= 600:
        vx = - vx
    # else:
    #     px += vx


    if py <= 0 or py + 100 >= 500:
        vy = - vy
    # else:
    #     py += vy

    screen.fill(color1)

    pygame.draw.rect(screen, color2, (px, py, 100, 100))

    time.sleep(0.2)

    pygame.display.update()




    五、绘制一条直�

# 绘制线条

import pygame
import pygame.locals
import sys
import time


color1 = 0, 80, 0

color2 = 100, 255, 200

pygame.init()
# 初始�

screen = pygame.display.set_mode((600, 500))
# 设置显示屏幕

pygame.display.set_caption("Drawing Lines")
# 设置显示框的标题的名�

while True:
    for event in pygame.event.get():
        if event.type == pygame.locals.QUIT or event.type == pygame.locals.KEYDOWN:
            sys.exit()
            # 与前面一样,如果说按下任意键或者是按下关闭的按钮,那么我们就退出程�

    screen.fill(color1)

    pygame.draw.line(screen, color2, (150, 150), (450, 450), width=10)

    pygame.display.update()





    运行代码的结果展示;

    在这里,我们再一次详细地介绍一下line里面的各个参数的意义�

    pygame.draw.line(screen, color2, (150, 150), (450, 450), width=10)


    1、第一个参� � 设置用于显示的屏幕是�

    2、第二个参数 � 设置直线段的颜色

    3、第三个阐述 � 设置起点,也就是开始的位置

    4、第四个参数 � 设置终点,也就是停止的位�

    5、第五个参数 � 设置线条的宽度或者说是粗细的程度

    最后再说一句,别忘记了加上一�

pygame.display.update()

    用来更新画面

    六、绘制一条弧�

    首先,我们绘制一个圆的一部分,也就是真正的圆弧形�

import math
import pygame
import pygame.locals
import sys
import time


color1 = 144, 238, 144
color2 = 0, 0, 139


pygame.init()
pygame.display.set_caption("Drawing Arcs")
screen = pygame.display.set_mode((600, 500))

while True:
    for event in pygame.event.get():
        if event.type in (pygame.locals.QUIT, pygame.locals.KEYDOWN):
            sys.exit()

    screen.fill(color1)

    ang1 = math.radians(45)
    # 设置起始角位�
    ang2 = math.radians(315)
    # 设置结束的角位置

    # 设置矩形�
    """
    元组中;
    第一个参数,矩形框的左上角的横坐�
    第二个参数,矩形框的右上角的纵坐�
    第三个参数,矩形框的长度
    即就是:相对� x 轴平行的方向的长�
    第四个参数,矩形框的宽度
    即就是:相对� y 轴平行的方向的长�
    
    另外,如果矩形框的长度和宽度不相等的话,绘制出来的弧线不是圆的一部分�
    而是椭圆的一部分 
    """
    rect1 = 100, 50, 400, 400
    # 第一个矩形框----画园的一部分
    rect2 = 200, 200, 200, 100
    # 第二个矩形框----画椭园的一部分

    pygame.draw.arc(screen, color2, rect1, ang1, ang2, width=10)
    # 参数的含义解�
    """
    第一个参数:屏幕
    第二个参数:颜色
    第三个参数:开始的角度
    第四个参数:结束的角�
    第五个参数:线条的宽�
    """

    pygame.display.update()

    接下来,我们绘制一个椭圆形的一部分�

    正如前一个实例中的注释所说,如果说:这个矩形框的长度和宽度不是相等的,那么,使用这个方法就是会绘制一个放 缩以后的椭圆彀�

    此处仅仅是吧上一个实例中� rect1 换用为了 rect2 ,其他部分没有任何的变化�

import math
import pygame
import pygame.locals
import sys
import time


color1 = 144, 238, 144
color2 = 0, 0, 139


pygame.init()
pygame.display.set_caption("Drawing Arcs")
screen = pygame.display.set_mode((600, 500))

while True:
    for event in pygame.event.get():
        if event.type in (pygame.locals.QUIT, pygame.locals.KEYDOWN):
            sys.exit()

    screen.fill(color1)

    ang1 = math.radians(45)
    # 设置起始角位�
    ang2 = math.radians(315)
    # 设置结束的角位置

    # 设置矩形�
    """
    元组中;
    第一个参数,矩形框的左上角的横坐�
    第二个参数,矩形框的右上角的纵坐�
    第三个参数,矩形框的长度
    即就是:相对� x 轴平行的方向的长�
    第四个参数,矩形框的宽度
    即就是:相对� y 轴平行的方向的长�
    
    另外,如果矩形框的长度和宽度不相等的话,绘制出来的弧线不是圆的一部分�
    而是椭圆的一部分 
    """
    rect1 = 100, 50, 400, 400
    # 第一个矩形框----画园的一部分
    rect2 = 200, 200, 200, 100
    # 第二个矩形框----画椭园的一部分

    pygame.draw.arc(screen, color2, rect2, ang1, ang2, width=10)
    # 参数的含义解�
    """
    第一个参数:屏幕
    第二个参数:颜色
    第三个参数:开始的角度
    第四个参数:结束的角�
    第五个参数:线条的宽�
    """

    pygame.display.update()

    运行代码的结果如下图所示;

    我们可以看到,这里确实是把竖直方向的宽度进行了压缩,使得原本的那个圆形变为了一个椭圆,同时,我们也把圆弧形,变为了一个椭圆弧彀�

    关于python的pygame绘制图形的就介绍到这,上述示例仅供参考,感兴趣的朋友可以看看,希望能对大家学习pygame有帮助,想要了解更多python的pygame绘制图形的内容,大家可以关注其他文章�

文本转载自脚本之�

标签� python的pygame

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容�

猜你喜欢

群英网络开启智能安全云计算之旅

注册领取新人大礼�
专业资深工程师驻�
7X24小时快速响�
一站式无忧技术支�
免费备案服务

联系我们

24小时售后 24小时售后TEL�0668-2555666 售前咨询TEL�400-678-4567 投诉建议TEL�0668-2555999 投诉建议邮箱:t[email protected] 信息安全TEL�0668-2555118 域名空间客服 公司总机�0668-2555555 公司传真�0668-2555000
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 � 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部