pygame.gfxdraw
pygame module for drawing shapes
draw a pixel
draw a horizontal line
draw a vertical line
draw a line
draw a rectangle
draw a filled rectangle
draw a circle
draw an antialiased circle
draw a filled circle
draw an ellipse
draw an antialiased ellipse
draw a filled ellipse
draw an arc
draw a pie
draw a trigon/triangle
draw an antialiased trigon/triangle
draw a filled trigon/triangle
draw a polygon
draw an antialiased polygon
draw a filled polygon
draw a textured polygon
draw a Bezier curve

实验性的! :该接口可能会在以后的pyGame版本中更改或消失。如果您使用它,您的代码可能会与下一个pyGame发行版发生冲突。

在加载时,pyGame包不会自动导入gfxraw,因此必须显式导入才能使用。

import pygame
import pygame.gfxdraw

对于所有函数,参数都是严格按位置排列的,坐标和半径都接受整数。这个 color 参数可以是以下格式之一:

功能 rectangle()box() 将接受任何 (x, y, w, h) 它们的序列 rect 尽管如此,争论 pygame.Rectpygame object for storing rectangular coordinates 实例优先。

要绘制已填充的抗锯齿形状,请首先使用抗锯齿(AA ) version of the function, and then use the filled (filled_ )版本。例如:

col = (255, 0, 0)
surf.fill((255, 255, 255))
pygame.gfxdraw.aacircle(surf, x, y, 30, col)
pygame.gfxdraw.filled_circle(surf, x, y, 30, col)

备注

对于线程,每个函数在调用的C部分期间释放GIL。

备注

请参阅 pygame.drawpygame module for drawing shapes 用于替代绘制方法的模块。这个 pygame.gfxdraw 模块不同于 pygame.drawpygame module for drawing shapes 它使用的API中的模块和可用的不同绘制函数。 pygame.gfxdraw 包装名为sdl_gfx的库中的基本体,而不是使用修改后的版本。

New in pygame 1.9.0.

pygame.gfxdraw.pixel()
draw a pixel
pixel(surface, x, y, color) -> None

在给定曲面上的(x,y)位置绘制单个像素。

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x (int) -- 像素的X坐标

  • y (int) -- 像素的Y坐标

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

pygame.gfxdraw.hline()
draw a horizontal line
hline(surface, x1, x2, y, color) -> None

绘制一条直水平线 ((x1, y)(x2, y) )在给定曲面上。没有封口。

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x1 (int) -- 直线一端的X坐标

  • x2 (int) -- 直线另一端的X坐标

  • y (int) -- 直线的Y坐标

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

pygame.gfxdraw.vline()
draw a vertical line
vline(surface, x, y1, y2, color) -> None

画一条直线 ((x, y1)(x, y2) )在给定曲面上。没有封口。

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x (int) -- 直线的X坐标

  • y1 (int) -- 直线一端的Y坐标

  • y2 (int) -- 直线另一端的Y坐标

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

pygame.gfxdraw.line()
draw a line
line(surface, x1, y1, x2, y2, color) -> None

画一条直线 ((x1, y1)(x2, y2) )在给定曲面上。没有封口。

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x1 (int) -- 直线一端的X坐标

  • y1 (int) -- 直线一端的Y坐标

  • x2 (int) -- 直线另一端的X坐标

  • y2 (int) -- 直线另一端的Y坐标

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

pygame.gfxdraw.rectangle()
draw a rectangle
rectangle(surface, rect, color) -> None

在给定曲面上绘制未填充的矩形。对于填充矩形,请使用 box()

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • rect (Rect) -- 要绘制的矩形、位置和尺寸

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

备注

这个 rect.bottomrect.right 对象的属性 pygame.Rectpygame object for storing rectangular coordinates 始终位于其实际边框外一个像素处。因此,这些值不会包含在图形中。

pygame.gfxdraw.box()
draw a filled rectangle
box(surface, rect, color) -> None

在给定曲面上绘制实心矩形。对于未填充的矩形,请使用 rectangle()

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • rect (Rect) -- 要绘制的矩形、位置和尺寸

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

备注

这个 rect.bottomrect.right 对象的属性 pygame.Rectpygame object for storing rectangular coordinates 始终位于其实际边框外一个像素处。因此,这些值不会包含在图形中。

备注

这个 pygame.Surface.fill()fill Surface with a solid color 方法同样适用于绘制填充矩形。事实上 pygame.Surface.fill()fill Surface with a solid color 在具有软件和硬件显示模式的某些平台上可以进行硬件加速。

pygame.gfxdraw.circle()
draw a circle
circle(surface, x, y, r, color) -> None

在给定曲面上绘制一个未填充的圆。对于实心圆圈,请使用 filled_circle()

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x (int) -- 圆中心的X坐标

  • y (int) -- 圆中心的Y坐标

  • r (int) -- 圆的半径

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

pygame.gfxdraw.aacircle()
draw an antialiased circle
aacircle(surface, x, y, r, color) -> None

在给定曲面上绘制未填充的抗锯齿圆。

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x (int) -- 圆中心的X坐标

  • y (int) -- 圆中心的Y坐标

  • r (int) -- 圆的半径

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

pygame.gfxdraw.filled_circle()
draw a filled circle
filled_circle(surface, x, y, r, color) -> None

在给定曲面上绘制实心圆。对于未填充的圆圈,请使用 circle()

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x (int) -- 圆中心的X坐标

  • y (int) -- 圆中心的Y坐标

  • r (int) -- 圆的半径

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

pygame.gfxdraw.ellipse()
draw an ellipse
ellipse(surface, x, y, rx, ry, color) -> None

在给定曲面上绘制未填充的椭圆。对于实心椭圆,请使用 filled_ellipse()

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x (int) -- 椭圆中心的X坐标

  • y (int) -- 椭圆中心的Y坐标

  • rx (int) -- 椭圆的水平半径

  • ry (int) -- 椭圆的垂直半径

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

pygame.gfxdraw.aaellipse()
draw an antialiased ellipse
aaellipse(surface, x, y, rx, ry, color) -> None

在给定曲面上绘制未填充的抗锯齿椭圆。

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x (int) -- 椭圆中心的X坐标

  • y (int) -- 椭圆中心的Y坐标

  • rx (int) -- 椭圆的水平半径

  • ry (int) -- 椭圆的垂直半径

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

pygame.gfxdraw.filled_ellipse()
draw a filled ellipse
filled_ellipse(surface, x, y, rx, ry, color) -> None

在给定曲面上绘制实心椭圆。对于未填充的椭圆,请使用 ellipse()

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x (int) -- 椭圆中心的X坐标

  • y (int) -- 椭圆中心的Y坐标

  • rx (int) -- 椭圆的水平半径

  • ry (int) -- 椭圆的垂直半径

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

pygame.gfxdraw.arc()
draw an arc
arc(surface, x, y, r, start_angle, stop_angle, color) -> None

在给定曲面上绘制圆弧。对于其端点连接到其中心的圆弧,请使用 pie()

这两个角度参数以度为单位,指示圆弧的开始和结束位置。该圆弧是从 start_angle 发送到 stop_angle 。如果 start_angle == stop_angle ,什么都不会被抽到

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x (int) -- 圆弧中心的X坐标

  • y (int) -- 圆弧中心的Y坐标

  • r (int) -- 圆弧的半径

  • start_angle (int) -- 起点角度,以度为单位

  • stop_angle (int) -- 停止角(度)

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

备注

此函数使用 学位 在此期间, pygame.draw.arc()draw an elliptical arc 函数用法 弧度

pygame.gfxdraw.pie()
draw a pie
pie(surface, x, y, r, start_angle, stop_angle, color) -> None

在给定曲面上绘制未填充的饼图。馅饼是一种 arc() 将其端点连接到其中心。

两个角度参数以度为单位,指示饼图的开始和停止位置。饼图是以顺时针方向从 start_angle 发送到 stop_angle 。如果 start_angle == stop_angle ,将从给定角度的中心位置画一条直线到半径的长度。

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x (int) -- 饼图中心的X坐标

  • y (int) -- 饼图中心的Y坐标

  • r (int) -- 饼的半径

  • start_angle (int) -- 起点角度,以度为单位

  • stop_angle (int) -- 停止角(度)

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

pygame.gfxdraw.trigon()
draw a trigon/triangle
trigon(surface, x1, y1, x2, y2, x3, y3, color) -> None

在给定曲面上绘制未填充的三角(三角形)。对于填充的三角网格使用 filled_trigon()

也可以使用以下命令绘制三角网 polygon() 例如: polygon(surface, ((x1, y1), (x2, y2), (x3, y3)), color)

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x1 (int) -- 三角形的第一个角点的X坐标

  • y1 (int) -- 三角网第一个角的Y坐标

  • x2 (int) -- 三角形第二个角点的X坐标

  • y2 (int) -- 三角形第二个角点的Y坐标

  • x3 (int) -- 三角形第三个角点的X坐标

  • y3 (int) -- 三角网第三角的Y坐标

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

pygame.gfxdraw.aatrigon()
draw an antialiased trigon/triangle
aatrigon(surface, x1, y1, x2, y2, x3, y3, color) -> None

在给定曲面上绘制未填充的抗锯齿三角(三角形)。

也可以使用以下命令来绘制三角网线 aapolygon() 例如: aapolygon(surface, ((x1, y1), (x2, y2), (x3, y3)), color)

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x1 (int) -- 三角形的第一个角点的X坐标

  • y1 (int) -- 三角网第一个角的Y坐标

  • x2 (int) -- 三角形第二个角点的X坐标

  • y2 (int) -- 三角形第二个角点的Y坐标

  • x3 (int) -- 三角形第三个角点的X坐标

  • y3 (int) -- 三角网第三角的Y坐标

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

pygame.gfxdraw.filled_trigon()
draw a filled trigon/triangle
filled_trigon(surface, x1, y1, x2, y2, x3, y3, color) -> None

在给定曲面上绘制填充三角(三角形)。对于未填充的三角网格的使用 trigon()

填充三角网格也可以使用以下命令绘制 filled_polygon() 例如: filled_polygon(surface, ((x1, y1), (x2, y2), (x3, y3)), color)

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • x1 (int) -- 三角形的第一个角点的X坐标

  • y1 (int) -- 三角网第一个角的Y坐标

  • x2 (int) -- 三角形第二个角点的X坐标

  • y2 (int) -- 三角形第二个角点的Y坐标

  • x3 (int) -- 三角形第三个角点的X坐标

  • y3 (int) -- 三角网第三角的Y坐标

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

pygame.gfxdraw.polygon()
draw a polygon
polygon(surface, points, color) -> None

在给定曲面上绘制未填充的多边形。对于填充的多边形,请使用 filled_polygon()

中的相邻坐标 points 参数以及第一个和最后一个点将由线段连接。例如,对于积分 [(x1, y1), (x2, y2), (x3, y3)] 将从以下位置绘制线段 (x1, y1)(x2, y2)(x2, y2)(x3, y3) 、和来自 (x3, y3)(x1, y1)

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • points (tuple(coordinate) or list(coordinate)) -- 3个或更多(x,y)坐标的序列,其中每个 坐标 序列中必须是一个元组/列表/:类:pygame.math.Vector2,共2个整数/浮点数(浮点值将被截断)

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

引发
  • ValueError -- 如果 len(points) < 3 (必须至少有3分)

  • IndexError -- 如果 len(coordinate) < 2 (每个坐标必须至少有2个项目)

pygame.gfxdraw.aapolygon()
draw an antialiased polygon
aapolygon(surface, points, color) -> None

在给定曲面上绘制未填充的抗锯齿多边形。

中的相邻坐标 points 参数以及第一个和最后一个点将由线段连接。例如,对于积分 [(x1, y1), (x2, y2), (x3, y3)] 将从以下位置绘制线段 (x1, y1)(x2, y2)(x2, y2)(x3, y3) 、和来自 (x3, y3)(x1, y1)

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • points (tuple(coordinate) or list(coordinate)) -- 3个或更多(x,y)坐标的序列,其中每个 坐标 序列中必须是一个元组/列表/:类:pygame.math.Vector2,共2个整数/浮点数(浮点值将被截断)

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

引发
  • ValueError -- 如果 len(points) < 3 (必须至少有3分)

  • IndexError -- 如果 len(coordinate) < 2 (每个坐标必须至少有2个项目)

pygame.gfxdraw.filled_polygon()
draw a filled polygon
filled_polygon(surface, points, color) -> None

在给定曲面上绘制填充的多边形。对于未填充的多边形使用 polygon()

中的相邻坐标 points 参数以及第一个和最后一个点将由线段连接。例如,对于积分 [(x1, y1), (x2, y2), (x3, y3)] 将从以下位置绘制线段 (x1, y1)(x2, y2)(x2, y2)(x3, y3) 、和来自 (x3, y3)(x1, y1)

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • points (tuple(coordinate) or list(coordinate)) -- 3个或更多(x,y)坐标的序列,其中每个 坐标 序列中必须是一个元组/列表/:类:pygame.math.Vector2,共2个整数/浮点数(浮点值将被截断)`

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

引发
  • ValueError -- 如果 len(points) < 3 (必须至少有3分)

  • IndexError -- 如果 len(coordinate) < 2 (每个坐标必须至少有2个项目)

pygame.gfxdraw.textured_polygon()
draw a textured polygon
textured_polygon(surface, points, texture, tx, ty) -> None

在给定曲面上绘制带纹理的多边形。为了获得更好的性能,表面和纹理应该具有相同的格式。

到每像素Alpha曲面的每像素Alpha纹理blit将不同于 pygame.Surface.blit()draw one image onto another 布利特。此外,每像素的Alpha纹理不能与每像素8位的目标一起使用。

中的相邻坐标 points 参数以及第一个和最后一个点将由线段连接。例如,对于积分 [(x1, y1), (x2, y2), (x3, y3)] 将从以下位置绘制线段 (x1, y1)(x2, y2)(x2, y2)(x3, y3) 、和来自 (x3, y3)(x1, y1)

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • points (tuple(coordinate) or list(coordinate)) -- 3个或更多(x,y)坐标的序列,其中每个 坐标 序列中必须是一个元组/列表/:类:pygame.math.Vector2,共2个整数/浮点数(浮点值将被截断)

  • texture (Surface) -- 要在多边形上绘制的纹理

  • tx (int) -- 纹理的X偏移量

  • ty (int) -- 纹理的Y偏移量

返回

None

返回类型

NoneType

引发
  • ValueError -- 如果 len(points) < 3 (必须至少有3分)

  • IndexError -- 如果 len(coordinate) < 2 (每个坐标必须至少有2个项目)

pygame.gfxdraw.bezier()
draw a Bezier curve
bezier(surface, points, steps, color) -> None

在给定曲面上绘制一条贝塞尔曲线。

参数
  • surface (Surface) -- 要在其上绘制的曲面

  • points (tuple(coordinate) or list(coordinate)) -- 用于形成曲线的3个或更多(x,y)坐标的序列,其中每个 坐标 序列中必须是一个元组/列表/:类:pygame.math.Vector2,共2个整数/浮点数(浮点值将被截断)

  • steps (int) -- 插补步数,最小值为2

  • color (Color or tuple(int, int, int, [int])) -- 绘制所用的颜色,如果使用元组,则alpha值是可选的 (RGB[A])

返回

None

返回类型

NoneType

引发
  • ValueError -- 如果 steps < 2

  • ValueError -- 如果 len(points) < 3 (必须至少有3分)

  • IndexError -- 如果 len(coordinate) < 2 (每个坐标必须至少有2个项目)




Edit on GitHub