本文将主要介绍Pygame的draw模块,主要内容翻译自pygame的官方文档 http://www.pygame.org/docs/ref/draw.html
pygame.draw 模块用于在Surface上绘制一些简单的图形,比如点、直线、矩形、圆、弧等。
下面这段话引自龙昌博客·Pygame学习笔记3:绘图:pygame.draw中函数的第一个参数总是一个surface,然后是颜色,再后会是一系列的坐标等。稍有些计算机绘图经验的人就会知道,计算机里的坐标,(0,0)代表左上角。而返回值是一个Rect对象,包含了绘制的领域,这样你就可以很方便的更新那个部分了。
先从整体来看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: 绘制一系列平滑的线
大多数函数接受一个width参数表示线条(画笔)的宽度,如果该值设置为0,则表示填充整个图形。
所有的绘制函数都会尊重指定的Surface编辑区,而且会限制在这个区域内。函数的返回值是一个Rect,表示的是受影响的Surface区域。(原文: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.)
颜色参数通常是一个RGB三元组(R, G, B)。也可以接受RGBA形式的颜色值。
这些绘制函数会临时锁定所操作的Surface对象。
原型:pygame.draw.rect(Surface, color, Rect, width=0): return Rect
用途:在Surface上绘制矩形,第二个参数是线条(或填充)的颜色,第三个参数Rect的形式是((x, y), (width, height)),表示的是所绘制矩形的区域,其中第一个元组(x, y)表示的是该矩形左上角的坐标,第二个元组 (width, height)表示的是矩形的宽度和高度。width表示线条的粗细,单位为像素;默认值为0,表示填充矩形内部。
此外,Surface.fill 同样可以用来绘制填充矩形。
原型:pygame.draw.polygon(Surface, color, pointlist, width=0): return Rect
用途:polygon是多边形,这个函数和rect类似,除了第三个参数。顾名思义,pointlist是一个坐标点的列表,表示多边形的各个顶点。
原型:pygame.draw.circle(Surface, color, pos, radius, width=0): return