溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python之Pygame的Draw繪圖方法怎么使用

發(fā)布時(shí)間:2023-04-03 15:19:03 來源:億速云 閱讀:139 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下Python之Pygame的Draw繪圖方法怎么使用的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

Pygame的Draw繪圖

Pygame 中提供了一個(gè)draw模塊用來繪制一些簡單的圖形狀,比如矩形、多邊形、圓形、直線、弧線等。

pygame.draw模塊的常用方法如下表所示:

名稱說明
pygame.draw.rect() 繪制矩形
pygame.draw.polygon() 繪制多邊形
pygame.draw.circle() 根據(jù)圓心和半徑繪制圓形
pygame.draw.ellipse() 繪制一個(gè)橢圓形
pygame.draw.arc() 繪制弧線(揮著橢圓的一部分)
pygame.draw.line() 繪制線段(直線)
pygame.draw.lines() 繪制多條連續(xù)的線段
pygame.draw.aaline() 繪制一條平滑的線段(抗鋸齒)
pygame.draw.aalines() 繪制多條連續(xù)的線段

表格中的函數(shù)使用方法大同小異,它們都可以在 Surface 對(duì)象上繪制一些簡單的形狀,返回值是一個(gè) Rect 對(duì)象,表示實(shí)際繪制圖形的矩形區(qū)域。上述繪圖函數(shù)都提供了一個(gè) color 參數(shù),我們可以通過以下三種方式來傳遞 color 參數(shù)值:

  • pygame.color 對(duì)象

  • RGB 三元組

  • RGBA 四元組

下面通對(duì)上述一些方法的參數(shù)進(jìn)行詳細(xì)說明:

繪制矩形

繪制矩形的語法格式如下:

pygame.draw.rect(surface, color, rect, width)

參數(shù)說明如下:

  • surface :指主游戲窗口,無特殊情況,一般都會(huì)繪制在主屏幕上;

  • color :該參數(shù)用于該圖形著色;

  • rect :繪制圖形的位置和尺寸大??;

  • width :可選參數(shù),指定邊框的寬度,默認(rèn)為 0,表示填充該矩形區(qū)域。

注意,當(dāng) width > 0 時(shí),表示線框的寬度;而 width < 0 時(shí),此時(shí)不會(huì)繪制任何圖形。

繪制多邊形

pygame.draw.polygon(surface, color, points, width)

參數(shù)說明如下

  • points: 一個(gè)列表參數(shù),它表示組成多邊形頂點(diǎn)的 3 或者多個(gè) (x,y) 坐標(biāo),通過元組或者列表來表示這些多邊形頂點(diǎn)。

  • 其余參數(shù)與上述函數(shù)相同。

 繪制圓形

pygame.circle(surface, color, pos, radius, width=0)

參數(shù)說明如下

  • pos :該參數(shù)用來指定的圓心位置;

  • radius :用來指定圓的半徑;

  • 其余參數(shù)與上述函數(shù)相同。

 繪制橢圓形

pygame.draw.ellipse(surface, color, Rect, width=0)

繪制橢圓形的過程,其實(shí)就是在矩形區(qū)域內(nèi)部(Rect)繪制一個(gè)內(nèi)接橢圓形

參數(shù)說明如下

  • 其余參數(shù)與上述函數(shù)相同。

 繪制圓弧曲線

pygame.draw.arc(Surface, color, Rect, start_angle, stop_angle, width=1)

繪制橢圓形的過程,其實(shí)就是在矩形區(qū)域內(nèi)部(Rect)繪制一個(gè)內(nèi)接橢圓形
參數(shù)說明如下

  • start_angle : 是該段圓弧的起始角度;

  • stop_angle : 是終止角度;

  • 其余參數(shù)與上述函數(shù)相同。

繪制直線

pygame.draw.line(surface, color, start_pos, end_pos, width=1)

參數(shù)說明如下

  • start_pos : 是該線段的開始位置;

  • end_pos : 是該線段的結(jié)束位置;;

  • 其余參數(shù)與上述函數(shù)相同。

如果是繪制一條消除鋸齒的平滑線,此時(shí)則使用 blend = 1 參數(shù),如下所示:

pygame.aaline(surface, color, startpos, endpos, blend=1)

blend 參數(shù)表示通過繪制混合背景的陰影來實(shí)現(xiàn)抗鋸齒功能。

 繪制多條直線

參數(shù)說明如下

  • pointlist : 參數(shù)值為列表,包含了一些列點(diǎn)坐標(biāo)的列表;

  • closed : 布爾值參數(shù),如果設(shè)置為 True,表示直線的第一個(gè)端點(diǎn)和直線的最后一個(gè)端點(diǎn)要首尾相連;;

  • 其余參數(shù)與上述函數(shù)相同。

如果繪制抗鋸齒直線,使用以下方法:

pygame.draw.aalines(surface, color, closed, pointlist, blend=1)

除了指定了 blend = 1 之外,其余參數(shù)含義與上述函數(shù)相同。

下面通過一組簡單的示例對(duì)上述繪圖方法進(jìn)行演示:

import pygame
from math import pi

# 初始化
pygame.init()
# 設(shè)置主屏幕大小
size = (500, 450)
screen = pygame.display.set_mode(size)
# 設(shè)置標(biāo)題
pygame.display.set_caption("Python自學(xué)網(wǎng)")
# 設(shè)置一個(gè)控制主循環(huán)的變量
done = False
# 創(chuàng)建時(shí)鐘對(duì)象
clock = pygame.time.Clock()
while not done:
    # 設(shè)置游戲的fps
    clock.tick(10)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True  # 若檢測(cè)到關(guān)閉窗口,則將done置為True
    # 繪制一條寬度為 3 的紅色對(duì)角線
    pygame.draw.line(screen, (0, 255, 0), [0, 0], (500, 450), 3)
    # 繪制多條藍(lán)色的直線(連續(xù)直線,非抗鋸齒),F(xiàn)alse 表示首尾不相連
    pygame.draw.lines(screen, (0, 0, 255), False, [[0, 80], [50, 90], [200, 80], [220, 30]], 1)
    # 繪制一個(gè)灰色的矩形區(qū)域,以灰色填充區(qū)域
    pygame.draw.rect(screen, (155, 155, 155), (75, 10, 50, 20), 0)
    # 繪制一個(gè)線框?qū)挾葹?的矩形區(qū)域
    pygame.draw.rect(screen, (0, 0, 0), [150, 10, 50, 20], 2)
    # 繪制一個(gè)橢圓形,其線寬為2
    pygame.draw.ellipse(screen, (255, 0, 0), (225, 10, 50, 20), 2)
    # 繪制一個(gè)實(shí)心的紅色橢圓形
    pygame.draw.ellipse(screen, (255, 0, 0), (300, 10, 50, 20))
    # 繪制一個(gè)綠色邊框(寬度為2)三角形
    pygame.draw.polygon(screen, (100, 200, 45), [[100, 100], [0, 200], [200, 200]], 2)
    # 繪制一個(gè)藍(lán)色實(shí)心的圓形,其中[60,250]表示圓心的位置,40為半徑,width默認(rèn)為0
    pygame.draw.circle(screen, (0, 0, 255), [60, 250], 40)
    # 繪制一個(gè)圓弧,其中0表示弧線的開始位置,pi/2表示弧線的結(jié)束位置,2表示線寬
    pygame.draw.arc(screen, (255, 10, 0), (210, 75, 150, 125), 0, pi / 2, 2)
    # 刷新顯示屏幕
    pygame.display.flip()
# 點(diǎn)擊關(guān)閉,退出pygame程序
pygame.quit()

以上就是“Python之Pygame的Draw繪圖方法怎么使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI