python學習(二)之turtle庫繪圖


  今天是三月七號,也就是女生節,或者女神節。不知道你是不是有自己喜歡的女孩子,在這里你可以用turtle庫繪制一朵玫瑰花,送給你喜歡的姑娘。(拉到最后有驚喜哦)但在畫這朵玫瑰花之前,先來一個基礎的圖形,也可以說是學習turtle庫的入門繪畫圖形——蟒蛇圖形。

  一、python蟒蛇繪制

代碼:

 1 import turtle
 2 turtle.setup(650, 350, 200, 200)
 3 turtle.penup()
 4 turtle.fd(-250)
 5 turtle.pendown()
 6 turtle.pensize(25)
 7 turtle.pencolor("purple")
 8 turtle.seth(-40)
 9 for i in range(4):
10     turtle.circle(40, 80)
11     turtle.circle(-40, 80)
12 turtle.circle(40, 80/2)
13 turtle.fd(40)
14 turtle.circle(16, 180)
15 turtle.fd(40 * 2/3)
16 turtle.done()

展示圖:

  二、turtle庫的相關知識

1.turtle庫又叫海龜庫。

意思是畫圖就像海龜在畫布上行走一樣,海龜走過的軌跡形成了一幅圖畫。turtle庫是python的標准庫之一,是一個圖形繪制函數庫。

2.保留字import

庫引用函數。import引用庫有兩種方式:

第一種:import <庫名> 使用庫中函數的格式:<庫名>.<函數名>(<函數參數>)

第二種:from <庫名> import <函數名>   或from <庫名> import *#其中,*是通配符,表示所有函數。使用格式:<函數名>.(<函數參數>)

另一種用法:

import <庫名> as <庫別名> 

<庫別名>.<函數名>(<函數參數>)

3.turtle庫函數介紹

(1)turtle.setup(width, height, startx, starty)

作用:設置主窗體的大小和位置

參數:width:窗口寬度。height: 窗口高度。startx: 窗口左側與屏幕左側的像素距離。如果值是None,窗口位於屏幕水平中央。starty: 窗口頂部與屏幕頂部的像素距離。如果值是None,窗口位於屏幕垂直中央。

(2)turtle.penup()和turtle.pendown()

作用:抬起畫筆,之后畫筆移動不繪制圖形。和,落下畫筆。開始繪制圖形。

(3)turtle.pensize(width)   別名:turtle.width()

作用:設置畫筆寬帶。如果為None或空,返回當前畫筆寬度。

 (4)turtle.penclor(colorstring)  別名:turtle.pencolor((r,  g, b))

作用:設置畫筆顏色,為空則返回當前畫筆顏色。

參數:colorstring:表示顏色的字符串,例如,"purple", "red", "blue"等。(r, g, b):顏色對應的RGB數值,例如,(51, 204, 140)。下面是部分典型RGB顏色對照表。

 (5)turtle.fd(distance)  別名:turtle.forward(distance)

作用:向箭頭的方向前進

參數:distance:行進的距離,當值為負數時,表示向相反方向前進。

(6)turtle.seth(to_angle)  別名:turtle.setheading(to_angle)

作用:設置前進的角度,該角度時絕方向的角度值。

參數:to_angle:角度的整數值。

 

(7)turtle.circle(radius, extent=None)

作用:根據半徑radius繪制角度extent的弧形

參數:radius:弧形半徑,當值為正數時,半徑在前進方向的左側,反之,在右側。extent:繪制弧形的角度,參數為None,則繪制整個圓形。

4.循環語句 for,in 和 range() 函數

(1)for <變量> in range(<次數>):

  <被循環執行的語句>

1 for i in range(5):
2     print(i)

(2)range函數:產生循環計數序列。

range(N):產生0到N-1的整數序列,共N個。range(5)#0 1 2 3 4

range(M, N):產生M到N-1的整數序列,共N-M個。range(2, 5)#2 3 4

 

  三、玫瑰花的繪制

代碼:

 1 import turtle
 2 # 設置初始位置
 3 turtle.goto(0, 0)
 4 turtle.color("black")
 5 turtle.penup()
 6 turtle.left(90)
 7 turtle.fd(200)
 8 turtle.pendown()
 9 turtle.right(90)
10 # 花蕊
11 turtle.fillcolor("red")
12 turtle.begin_fill()
13 turtle.circle(10, 180)
14 turtle.circle(25, 110)
15 turtle.left(50)
16 turtle.circle(60, 45)
17 turtle.circle(20, 170)
18 turtle.right(24)
19 turtle.fd(30)
20 turtle.left(10)
21 turtle.circle(30, 110)
22 turtle.fd(20)
23 turtle.left(40)
24 turtle.circle(90, 70)
25 turtle.circle(30, 150)
26 turtle.right(30)
27 turtle.fd(15)
28 turtle.circle(80, 90)
29 turtle.left(15)
30 turtle.fd(45)
31 turtle.right(165)
32 turtle.fd(20)
33 turtle.left(155)
34 turtle.circle(150, 80)
35 turtle.left(50)
36 turtle.circle(150, 90)
37 turtle.end_fill()
38 # 花瓣1
39 turtle.left(150)
40 turtle.circle(-90, 70)
41 turtle.left(20)
42 turtle.circle(75, 105)
43 turtle.setheading(60)
44 turtle.circle(80, 98)
45 turtle.circle(-90, 40)
46 # 花瓣2
47 turtle.left(180)
48 turtle.circle(90, 40)
49 turtle.circle(-80, 98)
50 turtle.setheading(-83)
51 # 葉子1
52 turtle.fd(30)
53 turtle.left(90)
54 turtle.fd(25)
55 turtle.left(45)
56 turtle.fillcolor("green")
57 turtle.begin_fill()
58 turtle.circle(-80, 90)
59 turtle.right(90)
60 turtle.circle(-80, 90)
61 turtle.end_fill()
62 turtle.right(135)
63 turtle.fd(60)
64 turtle.left(180)
65 turtle.fd(85)
66 turtle.left(90)
67 turtle.fd(80)
68 # 葉子2
69 turtle.right(90)
70 turtle.right(45)
71 turtle.fillcolor("green")
72 turtle.begin_fill()
73 turtle.circle(80, 90)
74 turtle.left(90)
75 turtle.circle(80, 90)
76 turtle.end_fill()
77 turtle.left(135)
78 turtle.fd(60)
79 turtle.left(180)
80 turtle.fd(60)
81 turtle.right(90)
82 turtle.circle(200, 60)
83 turtle.penup()
View Code

展示圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM