pygame 绘制多边形、圆形、椭圆形、线条

1,035 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第29天,点击查看活动详情

pygame 绘制几条抗锯齿线

此函数在曲面上绘制一个矩形。除了目标表面和颜色之外,pygame.rect 还采用要绘制的矩形的尺寸和线条的宽度。如果将宽度设置为0或省略它,则矩形将用纯色填充;否则,将只绘制边缘。

让我们编写一个脚本来测试 Pygame 的矩形绘制功能。清单 4-9 以随机位置和颜色绘制了十个随机填充的矩形。它产生了一种奇怪的漂亮,现代艺术般的效果。

image.png

image.png

还有另一种方法可以在曲面上绘制填充矩形。曲面对象的填充方法采用矩形样式的对象,该对象定义要填充曲面的哪个部分,并绘制一个完美的填充矩形!事实上,填充可以比

平局;它可以是硬件加速的(换句话说,由显卡而不是主处理器执行)。

pygame.绘画.多边形

多边形是一个多边形,也就是说,从三角形到myriagon(10,000条边 - 我查了一下!)及以后的任何东西。给皮加游戏的呼唤 。画。pol ygon 获取点列表并在它们之间绘制形状。就像皮游戏一样。rect,它还采用可选的宽度值。如果省略宽度或设置为 0,则多边形将被填充;否则,将仅绘制边缘。

我们使用一个简单的脚本测试Pygame的多边形绘制功能。清单 4-10 保留了一个要点列表。每次它获得鼠标按钮下来事件时,它都会将鼠标的位置添加到点列表中。当它至少有三个点时,它将绘制一个多边形。尝试将宽度参数添加到对 pygame 的调用中。画。多边形以使用未填充的多边形。

image.png

pygame.绘制.圆圈

圆圈函数在表面上绘制一个圆圈。它采用圆的中心点和半径(半径是从中心到边缘的距离)。与其他绘制函数一样,它也为线条的宽度取值。如果宽度为0或省略,则用一条线绘制圆圈;否则,它将是一个实心圆。清单 4-11 以随机颜色在屏幕上绘制了随机填充的圆圈。

image.png

image.png

pygame.绘画椭圆

您可以将椭圆视为一个压扁的圆。如果你拿一个圆并拉伸它以适合它成一个矩形,它将变成一个椭圆。除了曲面和颜色之外,椭圆函数还采用椭圆应适合的矩形样式对象。它还采用宽度参数,该参数的使用方式与矩形和圆形一样。清单 4-12 绘制了一个椭圆,该椭圆适合从屏幕左上角延伸到当前鼠标位置的矩形。

image.png

pygame 绘画弧线

弧函数只绘制椭圆的一部分,但只绘制边;弧线没有填充选项。与椭圆函数一样,它需要一个矩形样式的对象,该对象将适合该圆弧(如果它覆盖了整个椭圆)。它还以弧度为单位需要两个角度。第一个角度是弧线应该开始绘制的地方,第二个角度是它应该停止的地方。它还为线条采用 width 参数,该参数默认为 1,但对于较粗的线条,您可以将其设置为更大的值。清单 4-13 绘制了一个适合整个屏幕的弧线。结束角取自鼠标的 x 坐标,因此,如果左右移动鼠标,则会更改弧的长度。

image.png

pygame.绘画线条

通常按顺序绘制线条,以便每条线都从前一条线离开的地方开始。第一个参数。画。线是指示线是否闭合的布尔值。如果设置为True,则会在列表中的最后一个点和第一个点之间绘制一条额外的线;否则,它将保持打开状态。此值后面是要绘制线条的点列表 和 通常的宽度参数。

清单 4-15 使用 py 游戏 。画。线条,用于从从鼠标位置获取的点列表中绘制线条。当列表中有超过100个点时,它会删除第一个点,因此该行奇迹般地开始“取消绘制”自身!这可能是蠕虫游戏的良好起点。

image.png

image.png