Python易学就会(四)turtle绘图入门--高级篇

  到目前为止我们通过turtle库了解了Python的基本语法,包括顺序与循环、函数的调用与方法的定义、列表与简单的数学运算等;也学习了用turtle库绘图的基本用法,包括坐标与角度、落笔抬笔、颜色与填充等。

  但是我们所绘的所有内容仅限于直线,对于曲线的绘制,一直没有涉及。从现在开始,我们就来了角一下用turtle库怎么画曲线,首先我们来画一个圆,看代码:

import turtle as t 
t.circle(100)        # 画一个半径为100的圆
t.mainloop()         # 等效于t.done()

  运行这个例子,我们可以看到,turtle从坐标原点开始,按逆时针方向画出了一个圆。非常简单,一条语句就实现了。

  第一个问题是,如果有希望turtle按顺时针方向画,应该怎样实现?嗯,将t.circle(100)中的参数100改为-100即可,也就是t.circle(-100)。也就是说明这个参数除了表示圆的半径面,其正负性还定义了画圆的方向。修改一下上面的代码:

import turtle as t 
t.circle(100)        # 从原点开始按逆时针方向画圆,直径为100
t.circle(-100)       # 从鼠标所在点开始按顺时针方向画圆,直径为100
t.mainloop() 

  运行这段代码,可以看到turtle在界面上画出一个8字形,先逆时针方向画圆,再顺时针方向画圆。可以看到turtle画这两个圆中的第一个时,相当于从圆的下底开始画(也即圆的-90度位置);画第二个圆相当于从上顶位置开始画(也即90度的位置)。

  那么,第二个问题来了,如果我希望从圆的0度位置开始画,或者180度位置开始画,应该怎么操作?修改一下上面的实例代码:

import turtle as t
t.setheading(90)    # 设置turtle的方向为正北(向上)方向
t.circle(100)       # 逆时针画
t.circle(-100)      # 顺时针画
t.mainloop()

  运行一下例子,可以看到,第一个圆是从0度位置开始画的,而第二个圆是从180度位置开始画的。通过这个小改动,我们可以看到,turtle画圆时,没有明确的“圆心”概念,而是以“初始方向+半径”来决定一个圆的位置和大小。其核心原理等同于割圆术。

  接下来,我们来看一下怎样画一段弧线,而不是完整的圆。t.circle()的第一个参数是半径,第二个参数就是圆弧的角度,默认是360度。修改一下上面的例子:

import turtle as t
t.setheading(90)
t.circle(100, 120)   # 画一段120度的弧线
t.penup()            # 抬起笔来
t.goto(0, 0)       
  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值