我们的思想是从for循环转到了引用turtle库,for循环是让箭头往左转一点,再往前走一点,往左转一些,再往前走一些,这样花的基本轮廓就可以画出来了。然后是茎和叶子的部分,因为记得老师提示过,这个玫瑰花可通过turtle库来实现,其中圆弧可以用circle来实现。所以我们打算用这种方法来尝试画茎和圆,主要是circle(),seth(),fd(),的来回运用,也有用到goto(),penup(),pendown()。如果想要线的弯度变小,就需要增大半径和弧度。想要画弧的方向改变,就需要在半径前添加正负号来实现。

以下是效果截图:

代码如下:

import turtle as t
t.setup(1000,800,0,0)
t.speed(0)
t.penup()
t.goto(0,200)
t.pendown()
t.color('black','red')
t.pensize(2)
t.begin_fill()
t.fd(1)
for i in range(50):#最里面第一笔
        t.fd(1)
        t.left(0.5)
t.left(45)#第一笔延长,即将转弯
for i in range(10):
        t.fd(0.5)
        t.left(1)
t.left(15)#转弯
for i in range(2):
        t.fd(0.1)
        t.left(1)
t.left(45)#第二道长弯儿
for i in range(100):
        t.fd(1)
        t.left(1)
t.left(15)#第二个弯即将
for i in range(15):
        t.fd(0.5)
        t.left(1)
t.left(70)#第三道长线
for i in range(125):
        t.fd(1)
        t.left(0.5)
t.left(60)#第三个转弯处
for i in range(15):
        t.fd(0.5)
        t.left(1)
t.left(30)#第四条长线的三分之二
for i in range(120):
        t.fd(1)
        t.left(0.55)
t.left(10)#第四条长线的三分之一
t.circle(100,20)
t.left(35)#花心下面
t.fd(70)
t.circle(80,90)
t.left(10)
t.circle(80,90)
t.right(5)
t.fd(63)#花心下面完成
t.end_fill()
t.penup()
t.right(130)#多出来的一小块儿
for i in range(50):
    t.fd(1)
    t.right(0.9)
t.left(150)
t.pendown()
t.fd(25)
t.begin_fill()
t.right(150)#外面右边
for i in range(150):
    t.fd(1.3)
    t.right(0.5)
t.right(35)
for i in range(155):
    t.fd(1.3)
    t.right(0.5)
t.right(150)
t.circle(150,40)
for i in range(75):
    t.fd(1)
    t.right(1)
t.left(5)
t.fd(21)
t.right(120)
for i in range(120):
    t.fd(1)
    t.right(1)
t.right(15)
for i in range(95):
    t.fd(1)
    t.left(0.23)
t.end_fill()
t.penup()
t.goto(63,40)
t.pendown()
t.fillcolor("green")
t.seth(-90)
t.circle(300,80)
t.forward(100)
t.backward(100)
t.seth(90)
t.penup()
t.circle(300,80)
t.pendown()
t.seth(-90)
t.circle(300,30)
t.seth(0)
t.circle(30,100)
t.begin_fill()
t.seth(0)
t.circle(150,80)
t.seth(-180)
t.circle(150,80)
t.end_fill()
t.seth(45)
t.fd(30)
t.seth(-135)
t.fd(30)
t.seth(-180)
t.penup()
t.goto(63,40)
t.pendown()
t.seth(-90)
t.circle(300,50)
t.seth(-90)
t.circle(-30,100)
t.begin_fill()
t.seth(-135)
t.circle(-150,80)
t.seth(45)
t.circle(-150,80)
t.seth(175)
t.fd(30)
t.end_fill()
t.exitonclick()

组员:王润桥,尚菲

posted on 2017-10-31 20:31  尚菲  阅读(498)  评论(0编辑  收藏  举报