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()
是不是没看懂,没看懂就对了,我画了一张图可能更容易理解一点:
我们要时刻秉承我们是在平面图像里面构建正方体,要想有正方体的样子,起码我们得学会脑筋急转弯,不是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()
效果图(反正就是很丑):
绘制钟表,它的核心就是利用箭头的角度变化来添加各个刻度,没有什么难度,但是确实比较麻烦,而且要注意钟表上刻度的长短设置啊