图形之位置--屏幕坐标,,
图形之位置--屏幕坐标,,
位置--屏幕坐标
如果想在屏幕上画个东西或者放上一个东西,需要指定这个东西应当放在屏幕上哪个位置,这里有两个数: 一个对应X轴(水平方向),还有一个对应Y轴(垂直方向)。在Pygame中,这丙睂数从窗口左上角的【0,0】坐标开始。
看到类似【320,240】的一对数时,要知道第一个数表示水平方向,也就是相对于左边界的距离,第二个数表示垂直方向,也就是相对于顶边的距离,在数学和编程中,字母X通常用来表示水平距离,Y常用来表示垂直距离。
我们建立了一个640像素宽、480像素高的窗口。如果希望在窗口正中间画圆,需要在【320,240】上绘制。这个位置离左边界320像素,离上边界240像素。
下面尝试在窗口中间画圆,运行代码清单16-5中的程序。
这里使用坐标【320,240】作为圆心,把运行代码清单16-5的结果与运行代码清单16-4时看到的结果做个比较,看看有什么差别。
形状大小
使用Pygame的draw函数画形状时,必须指定形状的尺寸,对于圆来说,只有一个尺寸,也就是半径,而像矩形之类的形状,则必须指定长和宽。
Pygame有一种特殊的对象,名为rect(这是"rcetangle(矩形)"的简写),用来定义矩形区域,rect要使用左上角坐标,宽和高来定义。
这里同时定义了位置和大小,下面是一个例子:
这会创建一个矩形,它的左上角距离窗口左边界250像素。距离窗口上边界150像素。宽为300像素,高为200像素,下面来试试看。
用下面这行代码替换代码清单16-5中的第5行,看看结果是什么:
矩形的位置和在耚可以是一个简单的数字列表(或元组),也可以是一个Pygame的Rect对象。所以还可以把前面一行替换为下面这两行代码。
或者
这就是最后得到的矩形,我增加了一些尺寸标注来说明每个数字分别表示什么含义。
注意这里只向Pygame.draw.rect传递了4个参数,因为rect用一个参数就表示了位置和大小。在Pygame.draw.circle中,位置和大小分别由两个不同的参数表示,所以需要传递5个参数。
线宽
画形状时最后需要指定的一点是线的粗细,在之前的例子中,我们使用的线宽都是0,这会填充整个形状,如果使用不同的线宽,会看到形状的轮廓。
度把线宽改为2:
试试看有什么结果。再试试其他线宽。
现代艺术
想不想让计算机生成某种现代艺术?玩玩呗,试试代码清单16-6.也可以在代码清单16-5的基础上做些修改,或者干脆从头开始键入。
运行这个程序,看看会得到什么,应该能得到如下图所示的结果:
你明白这个程序是怎么工作的吗?它会随机画100个大小不等、位置不同的矩形。为了让它更有“艺术性”,再增加一些颜色,另外将线宽也设为随机,如代码清单16-7所示。
运行这个程序时,每次你都会看到不同的东西,如果有看着不错的,可以给它起个富有起想象力的名字,比如“机器之声”,看看能不能把它卖到你们当地的美术馆!
评论关闭