1. 程式人生 > >玫瑰一朵朵

玫瑰一朵朵

height won es2017 end draw click color 個人 比較

先放兩張圖

技術分享技術分享

首先看到這個問題比較懵,只能想到用turtle庫一步一步的畫,後來老師說可以用其他方式,比如循環,就從網上搜了一些類似的東西,並且請教了一些同學。

開始了磕磕絆絆的敲代碼。

因為兩個人聚不到一塊,上機課也是寫老師留的作業,於是寫了兩個版本。通過網上交流。

一朵玫瑰的是我畫的,主要是輪廓不好畫,就是利用for循環畫出花的大致輪廓。然後再用turtle畫出其他的東西。

import turtle as t
 
t.setup(1000,1000,0,0)
t.speed(0)
t.penup()
t.goto(0,-100)
t.seth(90)
t.fd(340)
t.seth(0)
t.pendown()
 
t.speed(5)
t.begin_fill()
t.fillcolor(‘red‘)
t.circle(50,30)
 
for i in range(10):
    t.fd(1)
    t.left(10)
 
t.circle(40,40)
 
for i in range(6):
    t.fd(1)
    t.left(3)
 
t.circle(80,40)
 
for i in range(20):
    t.fd(0.5)
    t.left(5)
 
t.circle(80,45)
 
for i in range(10):
    t.fd(2)
    t.left(1)
     
t.circle(80,25)
 
for i in range(20):
    t.fd(1)
    t.left(4)
 
t.circle(50,50)
 
 
t.circle(120,55)
 
t.speed(0)
 
t.seth(-90)
t.fd(70)
 
t.right(150)
t.fd(20)
 
t.left(140)
t.circle(140,90)
 
t.left(30)
t.circle(160,100)
 
t.left(130)
t.fd(25)
 
t.penup()
t.right(150)
t.circle(40,80)
t.pendown()
 
t.left(115)
t.fd(60)
 
t.penup()
t.left(180)
t.fd(60)
t.pendown()
 
t.end_fill()
 
t.right(120)
t.circle(-50,50)
t.circle(-20,90)
 
t.speed(1)
t.fd(75)
 
t.speed(0)
t.circle(90,110)
 
t.penup()
t.left(162)
t.fd(185)
t.left(170)
t.pendown()
t.circle(200,10)
t.circle(100,40)
t.circle(-52,115)
t.left(20)
t.circle(100,20)
t.circle(300,20)
t.speed(1)
t.fd(250)
 
t.penup()
t.speed(0)
t.left(180)
t.fd(250)
t.circle(-300,7)
t.right(80)
t.circle(200,5)
t.pendown()
 
t.left(60)
t.begin_fill()
t.fillcolor(‘green‘)
t.circle(-80,100)
t.right(90)
t.fd(10)
t.left(20)
t.circle(-63,127)
t.end_fill()
 
t.penup()
t.left(50)
t.fd(20)
t.left(180)
 
t.pendown()
t.circle(200,25)
 
t.penup()
t.right(150)
 
t.fd(180)
 
t.right(40)
t.pendown()
t.begin_fill()
t.fillcolor(‘green‘)
t.circle(-100,80)
t.right(150)
t.fd(10)
t.left(60)
t.circle(-80,98)
t.end_fill()
 
t.penup()
t.left(60)
t.fd(13)
t.left(180)
 
t.pendown()
t.speed(1)
t.circle(-200,23)
 
 
 
t.exitonclick()

  三朵玫瑰是同伴用函數畫的,我還得再研究研究。

from turtle import *
setup(0.5,0.9)
speed(9)
def DrawOneFlower(i):
    seth(0)
    if i>0:
        penup()
        fd(95.63)
        right(90)
        fd(51.6)
        left(90)
    elif i<0:
        penup()
        fd(-92.5)
        right(-90)
        fd(-57.02)
        left(-90)
    pendown()
    right(i)
    begin_fill()
    fillcolor("red")
    circle(80,20)
    circle(5,150)
    circle(160,20)
    circle(6,150)
    circle(200,18)
    circle(15,30)
    temp1=pos()   
    circle(15,130)
    circle(80,30)
    circle(240,10)
    #左面的一瓣外圓弧
    seth(-90-i)
    fd(35)
    seth(120-i)
    fd(10)
    seth(-100-i)
    fd(10)
    circle(80,80)
    #右面的一瓣
    seth(8-i)
    circle(80,80)
    circle(240,10)
    temp2=pos()
    goto(temp1)
    
    end_fill()
    pu()
    goto(temp2)
    pd()
    seth(-120-i)
    fd(35)
    circle(-80,20)
    circle(80,53)

    #左面的一瓣內圓弧
    seth(30-i)
    s=pos()
    circle(25,125)
    circle(-100,40)
    pu()
    goto(0,0)
    pd()
    return s
def DrawRoot(s):
    pu()
    goto(s)
    pd()
    pensize(6)
    pencolor(‘green‘)
    seth(-100)
    circle(100,40)
    fd(222)
def DrawLeaf():
    pencolor(‘brown‘)
    pensize(1)
    pu()
    fd(-150)
    seth(10)
    pd()
    begin_fill()
    fillcolor(‘green‘)
    temp=pos()
    circle(200,15)
    pu()
    left(180)
    circle(-200,10)
    pd()
    left(180)
    seth(-30)
    circle(60,120)
    seth(150)
    circle(60,120)
    pu()
    goto(temp)
    pd()
    seth(170)
    fd(75)
    fd(-60)
    seth(-250)
    circle(60,120)
    seth(-70)
    circle(60,120)
    hideturtle()
    end_fill()
def DrawIt():
    Root_Start=DrawOneFlower(60)
    DrawOneFlower(0)
    DrawOneFlower(-60)
    DrawRoot(Root_Start)
    DrawLeaf()
DrawIt()
   

  

小組成員:張鵬宇,劉冰倩

玫瑰一朵朵