中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用python怎么實現一個畫畫功能

發布時間:2020-12-25 13:54:27 來源:億速云 閱讀:424 作者:Leah 欄目:開發技術

利用python怎么實現一個畫畫功能?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

一、繪圖原理

我們通過控制初始位置為(0,0)的海龜進行移動,根據一組函數指令的控制,在平面坐標系中移動,從而在它爬行的路徑上繪制了圖形。

二、開始繪圖

turtle是python自帶的庫,我們直接import導入即可

import turtle

設置繪圖區域屬性

繪圖區域背景色的設置

turtle.bgcolor('blue')

利用python怎么實現一個畫畫功能

選擇想要的顏色即可

繪圖區域大小設置

turtle.setup(width=200,height=100)

參數:

width, height: 

輸入寬和高為整數時, 表示像素;

為小數時, 表示占據電腦屏幕的比例。

畫筆繪制圖形

讓我們先簡單的畫一條直線

turtle.forward(100)

利用python怎么實現一個畫畫功能

forward()是turtle的內置函數,表示從原點向前進多少距離。我們還可以控制畫筆的角度讓他轉彎。與之對應的是backward(),后退多少距離

turtle.backward(100)
turtle.left(60)
turtle.forward(100)

這里的left()就表示畫筆的轉彎方向和角度了,相應的right則為向右轉。

利用python怎么實現一個畫畫功能

如圖我們后退了100的距離然后向左偏轉60°又前進了100距離。其他常用參數請參考下面的表格

畫筆運動函數

函數描述
turtle.forward(distance)向當前畫筆方向移動distance像素長
turtle.backward(distance)向當前畫筆相反方向移動distance像素長度
turtle.right(degree)順時針移動degree°
turtle.left(degree)逆時針移動degree°
turtle.pendown()移動時繪制圖形,缺省時也為繪制
turtle.goto(x,y)將畫筆移動到坐標為x,y的位置
turtle.penup()移動時不繪制圖形,提起筆,用于另起一個地方繪制時用
turtle.speed(speed)畫筆繪制的速度范圍[0,10]整數
turtle.circle()畫圓,半徑為正(負),表示圓心在畫筆的左邊(右邊)畫圓

畫筆參數

命令說明
turtle.pensize(width)繪制圖形時的寬度
turtle.pencolor()畫筆顏色
turtle.fillcolor(colorstring)繪制圖形的填充顏色
turtle.color(color1, color2)同時設置pencolor=color1, fillcolor=color2
turtle.filling()返回當前是否在填充狀態
turtle.begin_fill()準備開始填充圖形
turtle.end_fill()填充完成;
turtle.hideturtle()隱藏箭頭顯示;
turtle.showturtle()與hideturtle()函數對應

全局控制命令

命令說明
turtle.clear()清空turtle窗口,但是turtle的位置和狀態不會改變
turtle.reset()清空窗口,重置turtle狀態為起始狀態
turtle.undo()撤銷上一個turtle動作
turtle.isvisible()返回當前turtle是否可見
stamp()復制當前圖形
turtle.write(s[,font=("font-name",font_size,"font_type")])寫文本,s為文本內容,font是字體的參數,里面分別為字體名稱,大小和類型;font為可選項, font的參數也是可選項

三、for循環語句

如果我們要畫一個正方形按照上邊的方法代碼為

import turtle

turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)

一個簡單的四邊形就要如此重復,繪制更復雜的圖形還這樣做的話就顯得不科學了,這時候我們就要用到for循環了。使用for循環的語句優化過的代碼為

totalTimes=4                       
for times in range(totalTimes):
    turtle.forward(100)
    turtle.left(90)

利用python怎么實現一個畫畫功能

四、簡單示例

繪制五角星

import turtle

t=turtle.Pen() #獲得畫筆
t.hideturtle() #隱藏箭頭
t.begin_fill() #填充圖形
for x in range(1, 6):
    t.forward(100)
    t.left(216) #在這里先向右直行,然后左轉216°(左下,正五角星度數180/5=36°)
t.end_fill() #填充完成

利用python怎么實現一個畫畫功能

繪制櫻花樹

import turtle as T
import random
import time
 
# 畫櫻花的軀干(60,t)
def Tree(branch, t):
  time.sleep(0.0005)
  if branch > 3:
    if 8 <= branch <= 12:
      if random.randint(0, 2) == 0:
        t.color('snow') # 白
      else:
        t.color('lightcoral') # 淡珊瑚色
      t.pensize(branch / 3)
    elif branch < 8:
      if random.randint(0, 1) == 0:
        t.color('snow')
      else:
        t.color('lightcoral') # 淡珊瑚色
      t.pensize(branch / 2)
    else:
      t.color('sienna') # 赭(zhě)色
      t.pensize(branch / 10) # 6
    t.forward(branch)
    a = 1.5 * random.random()
    t.right(20 * a)
    b = 1.5 * random.random()
    Tree(branch - 10 * b, t)
    t.left(40 * a)
    Tree(branch - 10 * b, t)
    t.right(20 * a)
    t.up()
    t.backward(branch)
    t.down()
 
# 掉落的花瓣
def Petal(m, t):
  for i in range(m):
    a = 200 - 400 * random.random()
    b = 10 - 20 * random.random()
    t.up()
    t.forward(b)
    t.left(90)
    t.forward(a)
    t.down()
    t.color('lightcoral') # 淡珊瑚色
    t.circle(1)
    t.up()
    t.backward(a)
    t.right(90)
    t.backward(b)
 
# 繪圖區域
t = T.Turtle()
# 畫布大小
w = T.Screen()
t.hideturtle() # 隱藏畫筆
t.getscreen().tracer(5, 0)
w.screensize(bg='wheat') # wheat小麥
t.left(90)
t.up()
t.backward(150)
t.down()
t.color('sienna')
 
# 畫櫻花的軀干
Tree(60, t)
# 掉落的花瓣
Petal(200, t)
w.exitonclick()

關于利用python怎么實現一個畫畫功能問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海淀区| 镇江市| 莆田市| 兴安县| 津市市| 湟源县| 班戈县| 安福县| 商南县| 保靖县| 西昌市| 通榆县| 蓝田县| 寻乌县| 会同县| 开阳县| 金塔县| 海原县| 新竹县| 宕昌县| 从化市| 桃江县| 绥棱县| 鞍山市| 宁陕县| 宣化县| 离岛区| 剑河县| 浮梁县| 秦皇岛市| 罗城| 河池市| 垣曲县| 隆子县| 扬中市| 鲁甸县| 唐山市| 新余市| 色达县| 宜兰县| 东乌珠穆沁旗|