旋转的太极图(程序和注释)

旋转的太极图

turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x 轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

需要的模块

只需要一个turtle库

import turtle

需要的模块如下↓

turtle.setheading()
#快速绘图
turtle.forward()
#向当前画笔方向移动distance像素长
turtle.backward()
#向当前画笔相反方向移动distance像素长度
turtle.left()
#逆时针移动
turtle.right()
#顺时针移动
turtle.penup()
#移动时不绘制图形,提起笔,用于另起一个地方绘制时用
turtle.pendown()
#移动时绘制图形,缺省时也为绘制
turtle.fillcolor()
#绘制图形的填充颜色
turtle.end_fill()
#填充完成
turtle.begin_fill()
#准备开始填充图形
turtle.circle()
#以给定半径画圆
turtle.goto()
#将画笔移动到坐标为x,y的位置
turtle.tracer()
#追踪运行轨迹
turtle.hideturtle()	
#隐藏箭头显示

画半圆的程序和注释

def yuan(radius,extent = None,colour='white'):
    #设置方法yuan,和函数radius,extent,colour
    # radius可以看作半径,extent是角度,控制是圆还是半圆或是什么的。
    # colour是填充的颜色,默认为白色。
    turtle.setheading(dd)
    #以x轴方向为起点将方向偏转为dd度,逆时针为正。
    turtle.forward(radius)
    #前进radius
    turtle.left(90)
    #左传90度
    turtle.pendown()
    #落笔
    turtle.fillcolor(colour)
    #将颜色设为colour
    turtle.begin_fill()
    #填充颜色
    turtle.circle(radius, extent)
    #以半径radius,角度extent画园
    turtle.end_fill()
    #填充
    turtle.penup()
    #抬笔
    turtle.right(90)
    #右转90度
    turtle.backward(radius)
    #后退radius

旋转的太极的程序和注释

# 旋转的太极
a = 8
dd = a
turtle.hideturtle()
while True:
    turtle.goto(0, 0)
    turtle.tracer(0, 0)
    # 画个黑半圆,
    yuan(200, extent=180, fc='black')
    # 画个白半圆。
    yuan(200, extent=-180)
    # 向前100,画个黑半圆。
    turtle.forward(100)
    yuan(100, extent=-180, fc='black')
    # 向后200,画个白半圆。
    turtle.back(200)
    yuan(100, extent=180)
    # 顺便画个小黑圆,比白圆大点是因为白圆还有边框,显得大。
    yuan(33, fc='black')
    # 向后200,画个小白圆。要问我为什么不是向前200,因为我试出来的233333
    turtle.back(200)
    yuan(30)
    # 延时10毫秒,不加这句的话,因为tracer(0,0)是画完才显示,会导致一直啥都画不出来。
    # 同时也不能用time.sleep之类的函数,亲测用不了。
    turtle.tracer(1, 10)
    # 然后下次循环的goto在tracer(0,0)之前这个很有讲究。这相当于是tracer(1,10)执行的一个语句。
    # 如果没有的话,会导致tracer(1,10)直接被tracer(0,0)覆盖,还是会什么也画不出来。。
    dd += a
    if dd > 360:
        dd -= 360
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值