1. 程式人生 > >海龜繪圖體系總結(2018年12月12號)

海龜繪圖體系總結(2018年12月12號)

海龜繪圖體系是Python中的一個內建的模組(turtle),提供一些比較基礎的繪圖方法
電腦螢幕的左上角座標為(0,0)(startx,starty)
對於海龜有兩個重要的引數:海龜的位置,海龜的朝向
1.1 運動控制(turtle motion)
把座標點當做是有一個海龜在(分前後左右)

1.1.1
turtle.goto(x,y) #畫筆定位到座標(x,y)
例如:

import turtle
turtle.goto(12,12)
turtle.goto(120,120)
turtle.done()

就是從座標(12,12)到座標(120,120)的一條直線

1.1.2
turtle.forward(distance)


或者turtle.fd(distance)#向正前方運動distance長度的距離
(注意是正前方,不是右方)

1.1.3
turtle.backward(distance)
向負方向運動distance長的距離(注意是後退,不是轉身走,區別在於海龜的朝向)

1.1.4
turtle.right(angle)
向右偏angle度
turtle.left(angle)
想做偏轉angle度

1.1.5
turtle.home()
回到原點

1.1.6
turtle.circle(radius,extent = None,steps = None)
畫圓形radius為半徑,extent為圓的角度

1.1.7
turtle.speed(speed)
以speed為速度運動

1.1.8
turtle.seth(angle)
turtle.setheading(angle)
改變行進的方向,不行進

1.1.9
turtle.colormode(mode )
mode 為RGB(小數值,整數值)

綜上的例子:畫一個圓和正方形

import turtle
turtle.speed(5)
turtle.goto(0,0)
for i in range(4):
	turtle.forward(100)
	turtle.right(90)
turtle.home()
turtle.circle(50,270)
turtle.done()

在這裡插入圖片描述
1.2畫筆控制(Pen control)

1.2.1
turtle.pendown()
落筆,在此狀態下會畫出運動的軌跡
turtle.penup()
起筆(將海龜擡起來),在此狀態下不會畫出運動的軌跡

1.2.2
turtle.pensize(width = None)
畫筆的粗細
turtle.pencolor(*args)
畫筆顏色
turtle.fillcolor(*args)
填充顏色
turtle.begin_fill()
開始填充
turtle.end_fill()
結束填充
turtle.write(arg,move = False,align = ‘left’,font = (“Arial”,8,“normal”))

import turtle
turtle.pencolor('red')
turtle.pendown()
turtle.fillcolor("blue")
turtle.begin_fill()
for i in range(4):
	turtle.fd(200)
	turtle.right(90)

turtle.end_fill()
turtle.penup()
turtle.goto(100,-100)
turtle.write('shao 程式設計實驗室')
turtle.done()

在這裡插入圖片描述

1.3 視窗控制(window control)

turtle.bgcolor(‘red’)
設定背景顏色
turtle.bgpic(picname = None)
背景圖片填充

例項:
用Python畫一條蟒蛇

#PythonDraw.py
import turtle 
turtle.setup(200,200,0,0,)#前兩項是畫布的大小,後兩項是畫圖的起始位置
turtle.penup()#海龜飛起來
turtle.fd(-250)#倒著走250個畫素
turtle.pendown()#海龜落下
turtle.pensize(25)
turtle.pencolor("green")
turtle.seth(-40)
for i in range(4):
	turtle.circle(40,80)
	turtle.circle(-40,80)
turtle.circle(40,40)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(80/3)
turtle.done()

這裡是我的微訊號,大家可以加我一起交流啊!
在這裡插入圖片描述