<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Pygame 中提供了一個draw模組用來繪製一些簡單的圖形狀,比如矩形、多邊形、圓形、直線、弧線等。
pygame.draw模組的常用方法如下表所示:
名稱 | 說明 |
---|---|
pygame.draw.rect() | 繪製矩形 |
pygame.draw.polygon() | 繪製多邊形 |
pygame.draw.circle() | 根據圓心和半徑繪製圓形 |
pygame.draw.ellipse() | 繪製一個橢圓形 |
pygame.draw.arc() | 繪製弧線(揮著橢圓的一部分) |
pygame.draw.line() | 繪製線段(直線) |
pygame.draw.lines() | 繪製多條連續的線段 |
pygame.draw.aaline() | 繪製一條平滑的線段(抗鋸齒) |
pygame.draw.aalines() | 繪製多條連續的線段 |
表格中的函數使用方法大同小異,它們都可以在 Surface 物件上繪製一些簡單的形狀,返回值是一個 Rect 物件,表示實際繪製圖形的矩形區域。上述繪圖函數都提供了一個 color 引數,我們可以通過以下三種方式來傳遞 color 引數值:
pygame.color
物件RGB
三元組RGBA
四元組下面通對上述一些方法的引數進行詳細說明:
繪製矩形的語法格式如下:
pygame.draw.rect(surface, color, rect, width)
引數說明如下:
surface
:指主遊戲視窗,無特殊情況,一般都會繪製在主螢幕上;color
:該引數用於該圖形著色;rect
:繪製圖形的位置和尺寸大小;width
:可選引數,指定邊框的寬度,預設為 0,表示填充該矩形區域。注意,當 width > 0 時,表示線框的寬度;而 width < 0 時,此時不會繪製任何圖形。
pygame.draw.polygon(surface, color, points, width)
引數說明如下
points
: 一個列表引數,它表示組成多邊形頂點的 3 或者多個 (x,y) 座標,通過元組或者列表來表示這些多邊形頂點。pygame.circle(surface, color, pos, radius, width=0)
引數說明如下
pos
:該引數用來指定的圓心位置;radius
:用來指定圓的半徑;pygame.draw.ellipse(surface, color, Rect, width=0)
繪製橢圓形的過程,其實就是在矩形區域內部(Rect)繪製一個內接橢圓形
引數說明如下
pygame.draw.arc(Surface, color, Rect, start_angle, stop_angle, width=1)
繪製橢圓形的過程,其實就是在矩形區域內部(Rect)繪製一個內接橢圓形
引數說明如下
start_angle
: 是該段圓弧的起始角度;stop_angle
: 是終止角度;pygame.draw.line(surface, color, start_pos, end_pos, width=1)
引數說明如下
start_pos
: 是該線段的開始位置;end_pos
: 是該線段的結束位置;;如果是繪製一條消除鋸齒的平滑線,此時則使用 blend = 1 引數,如下所示:
pygame.aaline(surface, color, startpos, endpos, blend=1)
blend 參數列示通過繪製混合背景的陰影來實現抗鋸齒功能。
引數說明如下
pointlist
: 引數值為列表,包含了一些列點座標的列表;closed
: 布林值引數,如果設定為 True,表示直線的第一個端點和直線的最後一個端點要首尾相連;;如果繪製抗鋸齒直線,使用以下方法:
pygame.draw.aalines(surface, color, closed, pointlist, blend=1)
除了指定了 blend = 1 之外,其餘引數含義與上述函數相同。
下面通過一組簡單的範例對上述繪圖方法進行演示:
import pygame from math import pi # 初始化 pygame.init() # 設定主螢幕大小 size = (500, 450) screen = pygame.display.set_mode(size) # 設定標題 pygame.display.set_caption("Python自學網") # 設定一個控制主迴圈的變數 done = False # 建立時鐘物件 clock = pygame.time.Clock() while not done: # 設定遊戲的fps clock.tick(10) for event in pygame.event.get(): if event.type == pygame.QUIT: done = True # 若檢測到關閉視窗,則將done置為True # 繪製一條寬度為 3 的紅色對角線 pygame.draw.line(screen, (0, 255, 0), [0, 0], (500, 450), 3) # 繪製多條藍色的直線(連續直線,非抗鋸齒),False 表示首尾不相連 pygame.draw.lines(screen, (0, 0, 255), False, [[0, 80], [50, 90], [200, 80], [220, 30]], 1) # 繪製一個灰色的矩形區域,以灰色填充區域 pygame.draw.rect(screen, (155, 155, 155), (75, 10, 50, 20), 0) # 繪製一個線框寬度為2的矩形區域 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) # 繪製一個藍色實心的圓形,其中[60,250]表示圓心的位置,40為半徑,width預設為0 pygame.draw.circle(screen, (0, 0, 255), [60, 250], 40) # 繪製一個圓弧,其中0表示弧線的開始位置,pi/2表示弧線的結束位置,2表示線寬 pygame.draw.arc(screen, (255, 10, 0), (210, 75, 150, 125), 0, pi / 2, 2) # 重新整理顯示螢幕 pygame.display.flip() # 點選關閉,退出pygame程式 pygame.quit()
到此這篇關於Python之Pygame的Draw繪圖的文章就介紹到這了,更多相關Pygame的Draw繪圖內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45