欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用draw類繪制圖形示例講解

 更新時間:2022年08月05日 09:25:31   作者:acktomas  
這篇文章主要介紹了Python使用draw類繪制圖形的哪些函數(shù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

視頻

觀看視頻

Pygame模塊之pygame.draw

本文將主要介紹Pygame的draw模塊,主要內容翻譯自pygame的官方文檔

pygame.draw 模塊用于在Surface上繪制一些簡單的圖形,比如點、直線、矩形、圓、弧等。

pygame.draw中函數(shù)的第一個參數(shù)總是一個surface,然后是顏色,再后會是一系列的坐標等。稍有些計算機繪圖經(jīng)驗的人就會知道,計算機里的坐標,(0,0)代表左上角。而返回值是一個Rect對象,包含了繪制的領域,這樣你就可以很方便的更新那個部分了。

先從整體來看pygame.draw有哪些函數(shù):

  • pygame.draw.rect:繪制矩形
  • pygame.draw.polygon:繪制任意邊數(shù)的多邊形
  • pygame.draw.circle:繪制圓
  • pygame.draw.ellipse:在矩形內繪制橢圓
  • pygame.draw.arc:繪制圓?。ɑ蛘邫E圓的一部分)
  • pygame.draw.line:繪制直線(線段)
  • pygame.draw.lines:從一個點列表中連續(xù)繪制直線段
  • pygame.draw.aaline:繪制一根平滑的線(反鋸齒)
  • pygame.draw.aalines:繪制一系列平滑的線

大多數(shù)函數(shù)接受一個width參數(shù)表示線條(畫筆)的寬度,如果該值設置為0,則表示填充整個圖形。

所有的繪制函數(shù)都會尊重指定的Surface編輯區(qū),而且會限制在這個區(qū)域內。函數(shù)的返回值是一個Rect,表示的是受影響的Surface區(qū)域。(原文:All the drawing functions respect the clip area for the Surface, and will be constrained to that area. The functions return a rectangle representing the bounding area of changed pixels.)

顏色參數(shù)通常是一個RGB三元組(R, G, B)。也可以接受RGBA形式的顏色值。

這些繪制函數(shù)會臨時鎖定所操作的Surface對象。

pygame.draw.rect

原型:pygame.draw.rect(Surface, color, Rect, width=0): return Rect

用途:在Surface上繪制矩形,color參數(shù)是線條(或填充)的顏色,參數(shù)Rect的形式是((x, y), (width, height)),表示的是所繪制矩形的區(qū)域,其中第一個元組(x, y)表示的是該矩形左上角的坐標,第二個元組 (width, height)表示的是矩形的寬度和高度。width表示線條的粗細,單位為像素;默認值為0,表示填充矩形內部。

此外,Surface.fill 同樣可以用來繪制填充矩形。

pygame.draw.polygon

原型:pygame.draw.polygon(Surface, color, pointlist, width=0): return Rect

用途:polygon是多邊形,這個函數(shù)和rect類似,除了第三個參數(shù)。顧名思義,pointlist是一個坐標點的列表,表示多邊形的各個頂點。

pygame.draw.circle

原型:pygame.draw.circle(Surface, color, pos, radius, width=0): return Rect

用途:用于繪制圓形。第三個參數(shù)pos是圓心的位置坐標,radius指定了圓的半徑。

pygame.draw.ellipse

原型:pygame.draw.ellipse(Surface, color, Rect, width=0): return Rect

用途:ellipse是橢圓形,這個函數(shù)在矩形 Rect 內部繪制一個內接橢圓。

pygame.draw.arc

原型:pygame.draw.arc(Surface, color, Rect, start_angle, stop_angle, width=1): return Rect

用途:繪制一段圓弧,或者其實是上面提到的橢圓的一部分。與ellipse函數(shù)相比,多了兩個參數(shù):start_angle是該段圓弧的起始角度,stop_angle是終止角度。這兩個都是用弧度制來表示的,而原點就是矩形Rect的中心。在Rect平面上建立坐標系,原點是中心,簡單示意圖如下。0弧度的起點是右邊的中點處。

pygame.draw.line

原型:pygame.draw.line(Surface, color, start_pos, end_pos, width=1): return Rect

用途:繪制直線段,start_pos 和 end_pos 分別表示起始點和終止點,用坐標表示。width為線條寬度,默認為1. 線條兩端自然結束,沒有明顯的端點(如實心黑點)。

pygame.draw.lines

原型:pygame.draw.lines(Surface, color, closed, pointlist, width=1): return Rect

用途:用于繪制一系列直線段。closed是一個布爾變量,如果closed為真,那么表示需要把第一點和最后一點連接起來。這些點來自pointlist,一個包含坐標點的列表。這個函數(shù)不會繪制線條的端點,也沒有斜角連接(miter joints),而且角度小和線條粗的連線看起來會有點奇怪( Lines with sharp corners and wide line widths can have improper looking corners.)。

pygame.draw.aaline

原型:pygame.draw.aaline(Surface, color, startpos, endpos, blend=1): return Rect

用途:繪制一條平滑的(消除鋸齒)直線段。

pygame.draw.aalines

原型:pygame.draw.aalines(Surface, color, closed, pointlist, blend=1): return Rect

用途:繪制連續(xù)的抗鋸齒線段。該函數(shù)還有上面的aaline的用法和前兩個類似。

示例1

繪制圖形時,函數(shù)使用方法舉例。

import pygame
from math import pi
#初始化
pygame.init()
# 設置主屏幕大小
size = (500, 450)
screen = pygame.display.set_mode(size)
#設置標題
pygame.display.set_caption("小小工坊")
# 設置一個控制主循環(huán)的變量
done = False
#創(chuàng)建時鐘對象
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)
    # 繪制多條藍色的直線(連續(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)
    # 繪制一個線框寬度為2的矩形區(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)
    # 繪制一個藍色實心的圓形,其中[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()

示例2

繪制臉部圖形

import pygame, sys
from math import pi
pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("pygame 繪圖")
GOLD = 255, 251, 0
RED = pygame.Color('red')
WHITE = 255, 255, 255
GREEN = pygame.Color('green')
e1rect = pygame.draw.ellipse(screen,GREEN, (50,50,500,300),3)
c1rect = pygame.draw.circle(screen, GOLD, (200, 180), 30, 5)
c2rect = pygame.draw.circle(screen, GOLD,(400, 180), 30, 5)
r1rect = pygame.draw.rect(screen, RED, (170, 130, 60, 10), 3)
r2rect = pygame.draw.rect(screen, RED, (370, 130, 60, 10))
plist = [(295,170), (285,250),(260,280),(340,280),(315,250),(305,170)]
l1rect = pygame.draw.lines(screen,GOLD,True,plist,2)
a1rect = pygame.draw.arc(screen,RED,(200,220,200,100), 1.4*pi, 1.9*pi, 3)
while True:
	for e in pygame.event.get():
		if e.type == pygame.QUIT:
			pygame.quit()
			sys.exit()
	pygame.display.update()

到此這篇關于Python使用draw類繪制圖形示例講解的文章就介紹到這了,更多相關Python draw類內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python openpyxl庫處理Excel文件高級應用技巧實例

    Python openpyxl庫處理Excel文件高級應用技巧實例

    openpyxl是一個用于處理Excel文件的Python庫,它提供了豐富的功能,使得用戶能夠輕松地讀取、寫入和操作Excel文件,而不需要依賴于Microsoft Excel軟件,作為一個開源項目,openpyxl在Python生態(tài)系統(tǒng)中得到了廣泛的應用,成為處理Excel數(shù)據(jù)的首選工具之一
    2024-01-01
  • Django如何繼承AbstractUser擴展字段

    Django如何繼承AbstractUser擴展字段

    這篇文章主要介紹了Django如何繼承AbstractUser擴展字段,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • python實現(xiàn)簡易學生信息管理系統(tǒng)

    python實現(xiàn)簡易學生信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了python實現(xiàn)簡易學生信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • python實現(xiàn)黃金分割法的示例代碼

    python實現(xiàn)黃金分割法的示例代碼

    這篇文章主要介紹了python實現(xiàn)黃金分割法的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • python用戶自定義異常的實例講解

    python用戶自定義異常的實例講解

    在本篇文章里小編給大家整理的是一篇關于python用戶自定義異常的實例講解,以后需要的朋友們可以跟著學習參考下。
    2021-07-07
  • Python opencv缺陷檢測的實現(xiàn)及問題解決

    Python opencv缺陷檢測的實現(xiàn)及問題解決

    這篇文章主要介紹了Python opencv缺陷檢測的實現(xiàn)及問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Python基礎教程之裝飾器詳解

    Python基礎教程之裝飾器詳解

    眾所周知,Python裝飾器是一種常見的元編程特性,在本教程中,我們將深入探討Python裝飾器的基本概念、語法及其應用,并利用實際例子加深理解,感興趣的小伙伴快跟隨小編一起了解一下吧
    2023-06-06
  • Python+Pygame實現(xiàn)簡單的單詞小游戲

    Python+Pygame實現(xiàn)簡單的單詞小游戲

    語言是一種藝術,但是作為語言的基礎——詞匯,卻不像藝術那樣賞心悅目。不斷的記憶與復習,讓詞匯成為很多孩子在學習英語時,最難完全攻克的關卡。本文就來用Python制作一個簡單的英語單詞游戲吧
    2023-03-03
  • Python讀取、寫入txt文本內容詳解

    Python讀取、寫入txt文本內容詳解

    這篇文章主要介紹了Python讀取、寫入txt文本內容詳解,python常用的讀取文件函數(shù)有三種read()、readline()、readlines() ,今天來看一下三種函數(shù)的用法與三者的區(qū)別,需要的朋友可以參考下
    2023-08-08
  • 學習python之編寫簡單簡單連接數(shù)據(jù)庫并執(zhí)行查詢操作

    學習python之編寫簡單簡單連接數(shù)據(jù)庫并執(zhí)行查詢操作

    這篇文章主要介紹了學習python之編寫簡單簡單連接數(shù)據(jù)庫并執(zhí)行查詢操作,需要的朋友可以參考下
    2016-02-02

最新評論