人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

Pygame Draw繪圖函數(shù)的具體使用

發(fā)布日期:2021-12-10 09:45 | 文章來源:CSDN

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

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

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

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

  • 使用 pygame.color 對象
  • RGB 三元組
  • RGBA 四元組

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

1) 繪制矩形

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

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

參數(shù)說明如下:

  • surface:指主游戲窗口,無特殊情況,一般都會繪制在主屏幕上;
  • color:該參數(shù)用于該圖形著色;
  • rect:繪制圖形的位置和尺寸大小;
  • width:可選參數(shù),指定邊框的寬度,默認(rèn)為 0,表示填充該矩形區(qū)域。

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

2) 繪制多邊形

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

其中 points 一個列表參數(shù),它表示組成多邊形頂點的 3 或者多個 (x,y) 坐標(biāo),通過元組或者列表來表示這些多邊形頂點。其余參數(shù)與上述函數(shù)相同。

3) 繪制圓形

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

上述參數(shù)的含義如下:

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

4) 繪制橢圓形

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

繪制橢圓形的過程,其實就是在矩形區(qū)域內(nèi)部(Rect)繪制一個內(nèi)接橢圓形,其余參數(shù)與上述參數(shù)意思相同。

5) 繪制圓弧曲線

當(dāng)需要繪制圓弧的曲線時,使用以下函數(shù),語法格式如下:

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

與 ellipse 函數(shù)相比,該函數(shù)多了兩個參數(shù):

  • start_angle是該段圓弧的起始角度;
  • stop_angle是終止角度;

這兩個都是用弧度制來表示的,而原點就是矩形 Rect 的中心位置。

6) 繪制直線

Draw 模塊提供了兩類繪制直線的方法,即是否消除直線的鋸齒,并且根據(jù)實際情況,我們還可以選擇繪制一條或者多條直線。

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

參數(shù)說明:

  • start_pos 和 end_pos 表示線段的起始位置,此處使用 [x,y] 來表示起始位置;
  • width =1 表示直線的寬度,默認(rèn)為 1。

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

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

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

7) 繪制多條直接

當(dāng)需要繪制多條直線的時候,我們可以使用以下方法:

pygame.lines(surface, color, closed, pointlist, width=1)

其中 pointlist 與 closed 含義如下:

  • pointlist:參數(shù)值為列表,包含了一些列點坐標(biāo)的列表
  • closed:布爾值參數(shù),如果設(shè)置為 True,表示直線的第一個端點和直線的最后一個端點要首尾相連;

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

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

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

下面通過一組簡單的示例對上述繪圖方法進(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("C語言中文網(wǎng)")
# 設(shè)置一個控制主循環(huán)的變量
done = False
#創(chuàng)建時鐘對象
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  # 若檢測到關(guān)閉窗口,則將done置為True
 # 繪制一條寬度為 3 的紅色對角線
 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)
 # 繪制一個灰色的矩形區(qū)域,以灰色填充區(qū)域
 pygame.draw.rect(screen, (155, 155, 155), (75, 10, 50, 20), 0)
 # 繪制一個線框?qū)挾葹?的矩形區(qū)域
 pygame.draw.rect(screen, (0, 0, 0), [150, 10, 50, 20],2)
 # 繪制一個橢圓形,其線寬為2
 pygame.draw.ellipse(screen, (255, 0, 0), (225, 10, 50, 20), 2)
 # 繪制一個實心的紅色橢圓形
 pygame.draw.ellipse(screen, (255, 0, 0), (300, 10, 50, 20))
 # 繪制一個綠色邊框(寬度為2)三角形
 pygame.draw.polygon(screen, (100, 200, 45), [[100, 100], [0, 200], [200, 200]], 2)
 # 繪制一個藍(lán)色實心的圓形,其中[60,250]表示圓心的位置,40為半徑,width默認(rèn)為0
 pygame.draw.circle(screen, (0, 0, 255), [60, 250], 40)
 # 繪制一個圓弧,其中0表示弧線的開始位置,pi/2表示弧線的結(jié)束位置,2表示線寬
 pygame.draw.arc(screen, (255, 10, 0), (210, 75, 150, 125), 0, pi / 2, 2)
 # 刷新顯示屏幕
 pygame.display.flip()
# 點擊關(guān)閉,退出pygame程序
pygame.quit()

程序的運(yùn)行結(jié)果如下所示:


圖1:Pygame繪圖函數(shù)用法

到此這篇關(guān)于Pygame Draw繪圖函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)Pygame Draw內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部