# -*- coding: utf-8 -*- # @Time : 18-9-14 下午12:47 # @Author : Felix Wang from turtle import * import time setup(600, 800, 0, 0) speed(0) penup() seth(90) fd(340) seth(0) pendown() # speed(5) begin_fill() fillcolor('red') circle(50, 30) for i in range(10): fd(1) left(10) # circle(40, 40) # for i in range(6): fd(1) left(3) # circle(80, 40) # for i in range(20): fd(0.5) left(5) # circle(80, 45) # for i in range(10): fd(2) left(1) # circle(80, 25) # for i in range(20): fd(1) left(4) # circle(50, 50) # time.sleep(0.1) # circle(120, 55) # speed(0) # seth(-90) fd(70) # right(150) fd(20) left(140) circle(140, 90) left(30) circle(160, 100) left(130) fd(25) penup() right(150) circle(40, 80) pendown() left(115) fd(60) penup() left(180) fd(60) pendown() end_fill() right(120) circle(-50, 50) circle(-20, 90) speed(1) fd(75) speed(0) circle(90, 110) penup() left(162) fd(185) left(170) pendown() circle(200, 10) circle(100, 40) circle(-52, 115) left(20) circle(100, 20) circle(300, 20) speed(1) fd(250) penup() speed(0) left(180) fd(250) circle(-300, 7) right(80) circle(200, 5) pendown() left(60) begin_fill() fillcolor('green') circle(-80, 100) right(90) fd(10) left(20) circle(-63, 127) end_fill() penup() left(50) fd(20) left(180) pendown() circle(200, 25) penup() right(150) fd(180) right(40) pendown() begin_fill() fillcolor('green') circle(-100, 80) right(150) fd(10) left(60) circle(-80, 98) end_fill() penup() left(60) fd(13) left(180) pendown() speed(1) circle(-200, 23) exitonclick()
效果图:
再附上一朵小花的绘制方法:
# -*- coding: utf-8 -*- # @Time : 18-9-14 下午3:23 # @Author : Felix Wang import turtle import math def p_line(t, n, length, angle): """Draws n line segments.""" for i in range(n): t.fd(length) t.lt(angle) def polygon(t, n, length): """Draws a polygon with n sides.""" angle = 360 / n p_line(t, n, length, angle) def arc(t, r, angle): """Draws an arc with the given radius and angle.""" arc_length = 2 * math.pi * r * abs(angle) / 360 n = int(arc_length / 4) + 1 step_length = arc_length / n step_angle = float(angle) / n # Before starting reduces, making a slight left turn. t.lt(step_angle / 2) p_line(t, n, step_length, step_angle) t.rt(step_angle / 2) def petal(t, r, angle): """Draws a 花瓣 using two arcs.""" for i in range(2): arc(t, r, angle) t.lt(180 - angle) def flower(t, n, r, angle, p): """Draws a flower with n petals.""" for i in range(n): petal(t, r, angle) t.lt(p / n) def leaf(t, r, angle, p): """Draws a 叶子 and fill it.""" t.begin_fill() # Begin the fill process. t.down() flower(t, 1, r, angle, p) t.end_fill() def main(): window = turtle.Screen() # creat a screen window.bgcolor("white") window.title("draw a flower") lucy = turtle.Turtle() lucy.shape("turtle") lucy.color("red") lucy.width(3) # lucy.speed(10) # Drawing flower flower(lucy, 7, 60, 100, 360) # Drawing pedicel lucy.color("brown") lucy.rt(90) lucy.fd(200) # Drawing leaf 1 lucy.width(1) lucy.rt(270) lucy.color("green") leaf(lucy, 40, 80, 180) lucy.rt(140) lucy.color("black") lucy.fd(30) lucy.lt(180) lucy.fd(30) # Drawing leaf 2 lucy.rt(120) lucy.color("green") leaf(lucy, 40, 80, 180) lucy.color("black") lucy.rt(140) lucy.fd(30) lucy.ht() # hideturtle window.exitonclick() main()