[TOC]
# **pygame.gfxdraw**
Pygame 中绘制图形的模块。
## **函数**
* pygame.gfxdraw.pixel() —— 绘制一个像素点
* pygame.gfxdraw.hline() —— 绘制一条水平线
* pygame.gfxdraw.vline() —— 绘制一条垂直线
* pygame.gfxdraw.rectangle() —— 绘制一个矩形边框
* pygame.gfxdraw.box() —— 绘制一个填充的矩形
* pygame.gfxdraw.line() —— 绘制一条直线
* pygame.gfxdraw.circle() —— 绘制一个圆形边框
* pygame.gfxdraw.arc() —— 绘制一条弧线
* pygame.gfxdraw.aacircle() —— 绘制一个平滑(抗锯齿)的圆形
* pygame.gfxdraw.filled\_circle() —— 绘制一个填充的圆形
* pygame.gfxdraw.ellipse() —— 绘制一个椭圆形边框
* pygame.gfxdraw.aaellipse() —— 绘制一个平滑(抗锯齿)的椭圆形
* pygame.gfxdraw.filled\_ellipse() —— 绘制一个填充的椭圆形
* pygame.gfxdraw.pie() —— 绘制一个扇形边框
* pygame.gfxdraw.trigon() —— 绘制一个三角形边框
* pygame.gfxdraw.aatrigon() —— 绘制一个平滑(抗锯齿)的三角形
* pygame.gfxdraw.filled\_trigon() —— 绘制一个填充的三角形
* pygame.gfxdraw.polygon() —— 绘制一个多边形边框
* pygame.gfxdraw.aapolygon() —— 绘制一个平滑(抗锯齿)的多边形
* pygame.gfxdraw.filled\_polygon() —— 绘制一个填充的多边形
* pygame.gfxdraw.textured\_polygon() —— 绘制一个纹理填充的多边形
* pygame.gfxdraw.bezier() —— 绘制一条贝塞尔曲线
**注意:当前版本 API 函数可能会在下一个版本发生改变或者取消。如果你要使用这个实验性的模块,你的代码将可能会与之后的 Pygame 版本不兼容。**
在一个 Surface 上绘制出几种图形。
大多数函数中有一个表示 RGB 色彩的三元组参数,有时也接收一个表示 RGBA 色彩的四元组参数,色彩参数也可以是已经映射到 Surface 对象内的像素格式下的一个整数值。
所有函数的参数都使用固定坐标,坐标和圆的半径仅支持整数描述。
对于类似绘制矩形函数,尽管传入一个 pygame.Rect 对象才是首选,但也可以接收一个用于描述 rect 的参数,像 (x, y, w, h) 序列。注意,对于一个 pygame.Rect 对象来说,矩形将不包含右边和底边。因此,对于 Rect 的 right 和 bottom 属性的值其实是不再矩形上的。
绘制平滑和填充的图形,首先使用抗锯齿版本的函数(”aa” 开头的那些),然后使用填充版本的函数。
例如:
~~~
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)
~~~
注意:pygame 不会自动导入 pygame.gfxdraw 模块(因为目前来说,这还是一个实验性的模块),所以你需要在使用之前自己导入。
线程提示:在调用 C 语言函数部分,都会释放 GIL(Global Interpreter Lock,全局解释器锁)。
pygame.gfxdraw 模块不同于 draw 模块的 API 函数使用,并且绘制的图形也不一样。因为它打包了 SDL\_gfx 库的原函数,而非使用修订后的版本。
## **函数详解**
### **pygame.gfxdraw.pixel()**
绘制一个像素点。
pixel(surface, x, y, color) -> None
在 Surface 对象上绘制一个像素点。
### **pygame.gfxdraw.hline()**
绘制一条水平线。
hline(surface, x1, x2, y, color) -> None
在 Surface 对象上的 y 坐标处,绘制一条从 x1 到 x2 的直线。
### **pygame.gfxdraw.vline()**
绘制一条垂直线。
vline(surface, x, y1, y2, color) -> None
在 Surface 对象上的 x 坐标处,绘制一条从 y1 到 y2 的直线。
### **pygame.gfxdraw.rectangle()**
绘制一个矩形边框。
rectangle(surface, rect, color) -> None
在 Surface 对象上绘制一个矩形边框,rect 参数指定矩形的区域。
记住,Surface.fill() 方法也可以用于绘制填充矩形。事实上,Surface.fill() 可以在一些平台上可以使用硬件加速,无论是软件还是硬件显示模式。
### **pygame.gfxdraw.box()**
绘制一个填充的矩形。
box(surface, rect, color) -> None
在 Surface 对象上绘制一个填充的矩形。
### **pygame.gfxdraw.line()**
绘制一条直线。
line(surface, x1, y1, x2, y2, color) -> None
在 Surface 对象上绘制一条直线,没有 endcaps。
### **pygame.gfxdraw.circle()**
绘制一个圆形。
circle(surface, x, y, r, color) -> None
在 Surface 对象上绘制一个圆形边框。坐标参数 (x,y) 决定圆心的位置,r 参数决定半径长度。没有用颜色进行填充。
### **pygame.gfxdraw.arc()**
绘制一条弧线。
arc(surface, x, y, r, start, end, color) -> None
在 Surface 对象上绘制一条弧线。
### **pygame.gfxdraw.aacircle()**
绘制一个平滑(抗锯齿)的圆形。
aacircle(surface, x, y, r, color) -> None
在 Surface 对象上绘制一个平滑(抗锯齿)的圆形。
### **pygame.gfxdraw.filled\_circle()**
绘制一个填充的圆形。
filled\_circle(surface, x, y, r, color) -> None
在 Surface 对象上绘制一个填充的原型,填充的颜色由 color 参数指定。
### **pygame.gfxdraw.ellipse()**
绘制一个椭圆形边框。
ellipse(surface, x, y, rx, ry, color) -> None
在 Surface 对象上绘制一个椭圆形边框。
### **pygame.gfxdraw.aaellipse()**
绘制一个平滑(抗锯齿)的椭圆形。
aaellipse(surface, x, y, rx, ry, color) -> None
在 Surface 对象上绘制一个平滑(抗锯齿)的椭圆形。
### **pygame.gfxdraw.filled\_ellipse()**
绘制一个填充的椭圆形。
filled\_ellipse(surface, x, y, rx, ry, color) -> None
在 Surface 对象上绘制一个填充的椭圆形,填充的颜色由 color 参数指定。
### **pygame.gfxdraw.pie()**
绘制一个扇形边框。
pie(surface, x, y, r, start, end, color) -> None
在 Surface 对象上绘制一个扇形边框。
### **pygame.gfxdraw.trigon()**
绘制一个三角形边框。
trigon(surface, x1, y1, x2, y2, x3, y3, color) -> None
在 Surface 对象上绘制一个三角形边框。
### **pygame.gfxdraw.aatrigon()**
绘制一个平滑(抗锯齿)的三角形。
aatrigon(surface, x1, y1, x2, y2, x3, y3, color) -> None
在 Surface 对象上绘制一个平滑(抗锯齿)的三角形。
### **pygame.gfxdraw.filled\_trigon()**
绘制一个填充的三角形。
filled\_trigon(surface, x1, y1, x2, y2, x3, y3, color) -> None
在 Surface 对象上绘制一个填充的三角形,填充的颜色由 color 参数指定。
### **pygame.gfxdraw.polygon()**
绘制一个多边形边框。
polygon(surface, points, color) -> None
在 Surface 对象上绘制一个多边形边框。
### **pygame.gfxdraw.aapolygon()**
绘制一个平滑(抗锯齿)的多边形。
aapolygon(surface, points, color) -> None
在 Surface 对象上绘制一个平滑(抗锯齿)的多边形
### **pygame.gfxdraw.filled\_polygon()**
绘制一个填充的多边形。
filled\_polygon(surface, points, color) -> None
在 Surface 对象上绘制一个填充的多边形,填充的颜色由 color 参数指定。
### **pygame.gfxdraw.textured\_polygon()**
绘制一个纹理填充的多边形。
textured\_polygon(surface, points, texture, tx, ty) -> None
在 Surface 对象上绘制一个纹理填充的多边形。
一个带 alpha 通道的纹理绘制到另一个带 alpha 通道的 Surface 对象上,将不同于使用 Surface.blit() 绘制。
带 alpha 通道的纹理不能被用于一个 8 位单像素的目标。
### **pygame.gfxdraw.bezier()**
绘制一条贝塞尔曲线。
bezier(surface, points, steps, color) -> None
在 Surface 对象上绘制一条贝塞尔曲线。
- 一、Python基础
- 1. 序言
- 1.1 Python简介
- 1.2 安装和使用IDE
- 1.3 语言特性和基础概念
- 2. 基本数据类型
- 2.2 字符串型
- 2.2.2 ASCII简介
- 2.2.4 字符串常用函数
- 3. 条件分支
- 3.3 闲聊条件判断和运算符优先级
- 10.正则表达式
- 【降龙十八章】Python小技巧
- 18.1 学习网址
- 18.2 PIP切换源
- 18.3 使用whl来安装
- 【工具优化】IDE优化技巧
- Anaconda
- Jupyter Notebook 的 Markdown 添加大纲
- Jupyter Notebook中图片缩放和居左
- Anaconda设置环境变量
- Pycharm
- PyCharm新建文档配置
- 设置字体和字号
- 设置主题和字体配色
- 保存和导入配置
- 设置对选择内容自动添加引号
- 推荐安装的插件
- Markdown
- 表格格式
- 二、Python进阶
- copy和deepcopy
- 《零基础入门学习 Python 》【小甲鱼版】
- 001.和Python的第一次接触+习题复习
- 002.用Python设计的第一个游戏 +习题复习
- Pygame详解
- Pygame详解:前言
- Pygame详解(一):Color类
- Pygame详解(二):display 模块
- Pygame详解(三):draw 模块
- Pygame详解(四):event 模块
- Pygame详解(五):font 模块
- Pygame详解(六):image 模块
- Pygame详解(七):key 模块
- Pygame详解(八):locals 模块
- Pygame详解(九):mixer 模块
- Pygame详解(十):mouse 模块
- Pygame详解(十一):Rect 对象
- Pygame详解(十二):Surface 对象
- Pygame详解(十三):time 模块
- Pygame详解(十四):music 模块
- Pygame详解(十五):pygame 模块
- Pygame详解(十六):cursors 模块
- Pygame详解(十七):joystick 模块
- Pygame详解(十八):mask 模块
- Pygame详解(二十一):BufferProxy 对象
- Pygame详解(二十三):gfxdraw 模块
- Pygame详解(二十五):Overlay 对象
- Pygame详解(二十八):sndarray 模块
- Pygame详解(三十一):camera 模块
- Pygame详解(三十二):cdrom 模块
- Pygame详解(三十六):version 模块
- pygame rect相关知识
- Tkinter详解
- Tkinter 组件详解(一):Label
- Tkinter 组件详解(二):Button