图形之位置--屏幕坐标,,


  位置--屏幕坐标

  如果想在屏幕上画个东西或者放上一个东西,需要指定这个东西应当放在屏幕上哪个位置,这里有两个数: 一个对应X轴(水平方向),还有一个对应Y轴(垂直方向)。在Pygame中,这丙睂数从窗口左上角的【0,0】坐标开始。

  看到类似【320,240】的一对数时,要知道第一个数表示水平方向,也就是相对于左边界的距离,第二个数表示垂直方向,也就是相对于顶边的距离,在数学和编程中,字母X通常用来表示水平距离,Y常用来表示垂直距离。

  我们建立了一个640像素宽、480像素高的窗口。如果希望在窗口正中间画圆,需要在【320,240】上绘制。这个位置离左边界320像素,离上边界240像素。

  与孩子一起学编程-python教程

  下面尝试在窗口中间画圆,运行代码清单16-5中的程序。

  与孩子一起学编程-python教程

  这里使用坐标【320,240】作为圆心,把运行代码清单16-5的结果与运行代码清单16-4时看到的结果做个比较,看看有什么差别。

  形状大小

  使用Pygame的draw函数画形状时,必须指定形状的尺寸,对于圆来说,只有一个尺寸,也就是半径,而像矩形之类的形状,则必须指定长和宽。

  Pygame有一种特殊的对象,名为rect(这是"rcetangle(矩形)"的简写),用来定义矩形区域,rect要使用左上角坐标,宽和高来定义。

  与孩子一起学编程-python教程

  这里同时定义了位置和大小,下面是一个例子:

  与孩子一起学编程-python教程

  这会创建一个矩形,它的左上角距离窗口左边界250像素。距离窗口上边界150像素。宽为300像素,高为200像素,下面来试试看。

  用下面这行代码替换代码清单16-5中的第5行,看看结果是什么:

  与孩子一起学编程-python教程

  矩形的位置和在耚可以是一个简单的数字列表(或元组),也可以是一个Pygame的Rect对象。所以还可以把前面一行替换为下面这两行代码。

  与孩子一起学编程-python教程

  或者

  与孩子一起学编程-python教程

  这就是最后得到的矩形,我增加了一些尺寸标注来说明每个数字分别表示什么含义。

  与孩子一起学编程-python教程

  注意这里只向Pygame.draw.rect传递了4个参数,因为rect用一个参数就表示了位置和大小。在Pygame.draw.circle中,位置和大小分别由两个不同的参数表示,所以需要传递5个参数。

  与孩子一起学编程-python教程

  线宽

  画形状时最后需要指定的一点是线的粗细,在之前的例子中,我们使用的线宽都是0,这会填充整个形状,如果使用不同的线宽,会看到形状的轮廓。

  度把线宽改为2:

  与孩子一起学编程-python教程

  试试看有什么结果。再试试其他线宽。

  现代艺术

  想不想让计算机生成某种现代艺术?玩玩呗,试试代码清单16-6.也可以在代码清单16-5的基础上做些修改,或者干脆从头开始键入。

  与孩子一起学编程-python教程

  运行这个程序,看看会得到什么,应该能得到如下图所示的结果:

  与孩子一起学编程-python教程

  你明白这个程序是怎么工作的吗?它会随机画100个大小不等、位置不同的矩形。为了让它更有“艺术性”,再增加一些颜色,另外将线宽也设为随机,如代码清单16-7所示。

  与孩子一起学编程-python教程与孩子一起学编程-python教程

  运行这个程序时,每次你都会看到不同的东西,如果有看着不错的,可以给它起个富有起想象力的名字,比如“机器之声”,看看能不能把它卖到你们当地的美术馆!

评论关闭