Python Turtle绘图基础(二)——空间和角度坐标体系

今天继续给大家介绍Python相关知识,本文主要内容是Python Turtle绘图基础(二),主要包括Turtle空间坐标体系和Turtle角度坐标体系。

一、Turtle空间坐标体系

以绘图区域中心为原点,水平向右方向为X轴正方向,垂直向上方向为Y轴正方向,建立平面直角坐标系,这就是Turtle的空间坐标体系。在初始状态时,我们的海龟处于Turtle的空间坐标体系原点的位置上。Turtle的空间坐标体系示意图如下所示:
在这里插入图片描述
在定义了Turtle的空间坐标体系后,我们就可以使用这个体系来控制海龟的移动了,控制海龟移动我们可以使用相对坐标或者是绝对坐标。所谓绝对坐标,就是海龟在Turtle空间坐标体系中的位置;而所谓相对坐标,则是海龟相对于之前自身的位置参考而移动后的位置。
Turtle库提供了非常丰富的函数来帮助我们控制海龟的移动,常用的函数有如下6个:
1、turtle.setx(X)、turtle.sety(Y)
这两个函数分别表示设置海龟的X轴和Y轴坐标值,X和Y采用的是绝对坐标。
2、turtle.goto(X,Y)
该函数表示将海龟移动到指定的X,Y坐标的位置,但是方向保持不变。
3、turtle.home()
该函数可以让海龟恢复原始状态,即坐标原点。
4、turtle.forwad(distance)、turtle.backward(distance)
这两个函数分别表示让海龟前进和后退指定的距离,距离distance参数使用相对坐标。距离Distance的值可以为负数,为负数时则表示反向移动。这两个函数还有2个别名,分别是tuetle.fd()和turtle.bk()。
注意,在上述6个函数中,除了turtle.home()函数以外,函数的执行不会改变海龟的方向。

二、Turtle角度坐标体系

同空间坐标体系一样,Turtle也存在角度坐标体系,并且也存在着绝对角度坐标体系和相对角度坐标体系。绝对角度坐标体系是以向右方向为0度,逆时针方向为正方向,建立的角度坐标体系,自然,旋转一周后,右方向也可以被称作360度。顺时针方向为负方向,因此,我们很容易得出结论,绘图区域向上的方向为90度或-270度,向左的方向为180度或-180度,向下的方向为270度或-90度。Turtle的绝对坐标体系如下图所示:
在这里插入图片描述
我们可以基于角度的绝对坐标体系来控制海龟的方向,这种方法即turtle.setheading()函数,该函数用法如下:

turtle.setheading(Angle)

该函数可以设置海龟的方向,Angle参数即表示海龟方向在绝对角度坐标系下的方向,使用该函数设置海龟方向,与当前海龟方向无关。该函数还有一个别名,即turtle.seth()。
Turtle的相对坐标体系,又称为方向坐标系,是以海龟当前的方向为参考方向所建立的坐标体系,该角度坐标系如下所示:
在这里插入图片描述
我们也可以基于相对角度坐标体系来控制海龟的方向,这种方法即turtle.left()和turtle.right()函数,这两个函数用法如下:

turtle.left(Angle)
turtle.right(Angle)

这两个函数分别表示海龟向左和向右旋转Angle参数指定的角度,这两个函数对海龟方向造成的效果与海龟当前的方向有关,角度是相对值。这两个函数也有别名,即turtle.lt和turtle.rt。
需要注意的是,对海龟角度的改变,并不会在绘图区域显示出来,只有当海龟再次移动时,才能够看出来。

三、Turtle库简单运用

在学习完Turtle的空间和角度坐标体系后,我们就可以使用Turtle库来绘制简单的图形了。
接下来,我们为了对上述函数加深理解,我们用刚才所学的函数,来进行简单五角星的绘制,程序代码如下:

import turtle

turtle.setup()
turtle.fd(100)
turtle.rt(144)
turtle.forward(100)
turtle.lt(-144)
turtle.bk(-100)
turtle.right(144)
turtle.fd(100)
turtle.right(144)
turtle.fd(108)

该代码最终结果如下:
在这里插入图片描述

注:
1、上述代码本质上非常简单,即不断右转144度,然后前进即可,上述代码之所以写的比较杂乱是因为考虑到尽可能多的使用这些函数。
2、程序运行后之所以出现问题,是因为我们没有进行控制函数,这些函数将会在后续介绍。

原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/127255869