python学习笔记31(利用turtle绘制立方体、钟表)

1.利用turtle绘制长方体
这道题简直是太费时间了,在角度变换上实在是没想到,先给出一个比较简单的带填充颜色的立方体:

import  turtle
turtle.title('长方体')
n = 100  # 边长

turtle.fillcolor('red')
turtle.begin_fill()
# 前侧
turtle.begin_fill()
for i in range(4):
    turtle.forward(n)
    turtle.right(90)
turtle.end_fill()

turtle.fillcolor('green')
turtle.begin_fill()
# 上方
turtle.left(55)
turtle.forward(n*0.6)
turtle.right(55)
turtle.forward(n)
turtle.right(125)
turtle.forward(n*0.6)
turtle.end_fill()

turtle.fillcolor('purple')
turtle.begin_fill()
# 右侧面
turtle.penup()
turtle.goto(n, -n)
turtle.pendown()
turtle.left(180)
turtle.forward(n*0.6)
turtle.left(35)
turtle.forward(n)
turtle.end_fill()


turtle.showturtle()
turtle.done()

效果图:
在这里插入图片描述

然后死了好多脑细胞,给出终极版:

import  turtle
turtle.title('长方体')
n = 100  # 边长

# 前侧
turtle.begin_fill()
for i in range(4):
    turtle.forward(n)
    turtle.right(90)


# 上方
turtle.left(55)
turtle.forward(n*0.6)
turtle.right(55)
turtle.forward(n)
turtle.right(125)
turtle.forward(n*0.6)


# 右侧面
turtle.penup()
turtle.goto(n, -n)
turtle.pendown()
turtle.left(180)
turtle.forward(n*0.6)
turtle.left(35)
turtle.forward(n)

# 后侧
turtle.penup()
turtle.goto(n, -n)
turtle.pendown()
turtle.right(35)
turtle.forward(n*0.6)
turtle.left(125)
turtle.forward(n)
turtle.right(90)
turtle.forward(n)

# 底面
turtle.penup()
turtle.goto(n, -n)
turtle.pendown()
turtle.right(35)
turtle.forward(n*0.6)
turtle.left(125)
turtle.forward(n)
# 要记得正方体的侧边是垂直于底面的啊
turtle.left(55)
turtle.forward(n*0.6)

turtle.showturtle()
turtle.done()

利用turtle绘制正方体
是不是没看懂,没看懂就对了,我画了一张图可能更容易理解一点:
turtle绘制正方体思路
我们要时刻秉承我们是在平面图像里面构建正方体,要想有正方体的样子,起码我们得学会脑筋急转弯,不是90度,90度的转换箭头方向,那样的话,画的是个寂寞。除了转换角度我们还要注意边的长度,说的多不如自己动手试一试,搞不清箭头的方向就多运行一下看看效果,结合效果图看看到底往哪个方向转换。

2.利用turtle绘制钟表(时间为9:15)

import turtle
# 绘制一个半径为100的圆,它的中心是(0,100),不是(0,0)
turtle.pen(2)
turtle.circle(100)
turtle.pencolor('blue')
turtle.pensize(3)

# 绘制表盘上的刻度‘6’
turtle.left(90)
turtle.forward(15)
turtle.write('6')

# 绘制表盘上的刻度‘12’
turtle.penup()
turtle.goto(0, 200)
turtle.pendown()
turtle.right(180)
turtle.forward(15)
turtle.write('12')

# 绘制表盘上的刻度‘3’
turtle.penup()
turtle.goto(100, 100)
turtle.pendown()
turtle.right(90)
turtle.forward(15)
turtle.write(3)

# 绘制表盘上的刻度‘9’
turtle.penup()
turtle.goto(-100, 100)
turtle.pendown()
turtle.right(180)
turtle.forward(15)
turtle.write(9)

turtle.pensize(4)
turtle.pencolor('green')
# 绘制时针
turtle.penup()
turtle.goto(0, 100)
turtle.pendown()
turtle.left(180)
turtle.forward(30)

turtle.pencolor('purple')
# 绘制秒针
turtle.penup()
turtle.goto(0, 100)
turtle.pendown()
turtle.right(90)
turtle.forward(65)

turtle.pencolor('yellow')
# 绘制分针
turtle.penup()
turtle.goto(0, 100)
turtle.pendown()
turtle.goto(50, 100)
turtle.right(90)

turtle.showturtle()
turtle.done()

效果图(反正就是很丑):
利用turtle实现钟表绘制
绘制钟表,它的核心就是利用箭头的角度变化来添加各个刻度,没有什么难度,但是确实比较麻烦,而且要注意钟表上刻度的长短设置啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值