今日得閒,完善一下之前用python畫的滑稽笑臉的程式碼,附計算過程
現在來補充一下,之前的笑臉畫法
首先,我們來引入兩個接下來畫笑臉需要用到的庫
一分析了,首先看下我們的目標圖形(在文開始),並對其進行簡單的解析
import turtle as t
import math
首先,我們的思路是先畫出一個大圓
然後,分別定義畫大小嘴脣的,左右眼睛的,左右臉頰的函式
最後,在完成了前期的所有基本結構之後,進行顏色的填充
接下來看程式碼
def upmouth():
t.left(90)
t.up()
t.fd(25)
t.down()
t.fillcolor("red")
t.begin_fill()
t.left(90)
x = 1
for i in range(180):
t.pencolor("red")
t.fd(3)
t.right(1)
t.end_fill()
---------------------
作者:gzh_love_python
來源:CSDN
原文:https://blog.csdn.net/gzh_love_python/article/details/88204664
版權宣告:本文為博主原創文章,轉載請附上博文連結!
這是上嘴脣的程式碼,前半部分沒啥稀奇的,就是那個便利迴圈
這裡的遍歷迴圈的數學原理就是微積分基本思想
接下來畫下嘴脣,同樣的方法,實驗它的各項引數,當然實驗之前需要用高中數學進行一定的計算,得出一個比較模糊的數值,隨後再進行多次調整。這裡說下,用到的公式有,弧長 = 圓心角(弧度制) * 半徑, 再根據之前定義的大臉盤子的半徑,進行半徑的求解,需要用到反三角函式。
def down_mouth():
t.fillcolor(“yellow”)
t.begin_fill()
t.right(90 + 80)
for u in range(163):
t.pencolor(“red”)
t.left(1)
t.fd(3)
t.end_fill()
t.up()
t.goto(190, 310)
t.down()
---------------------
作者:gzh_love_python
來源:CSDN
原文:https://blog.csdn.net/gzh_love_python/article/details/88204664
版權宣告:本文為博主原創文章,轉載請附上博文連結!
而後,就是畫眼睛了,經過觀察,不難發現,對於畫兩隻眼睛而言,只需改變turtle的起始位置即可,其他的引數全都一樣,所以,對眼睛的上下弧長求解就變得很重要了。經過觀察,不難看出,眼睛的主體框架其實是兩條圓心角相同,半徑不同的弧。而眼睛的邊角就是半圓。
def eyes():
t.fillcolor(“white”)
t.begin_fill()
for r in range(100):
t.fd(2)
t.left(1)
t.circle(10, 180)
for r in range(100):
t.fd(2 - (math.pi / 9))
t.right(1)
t.circle(10, 180)
t.end_fill()
t.up()
t.circle(10, 90)
t.right(90)
for r in range(90):
t.fd(2 - (math.pi / 13))
t.left(1)
t.down()
t.fillcolor(“black”)
t.begin_fill()
t.circle(10)
t.end_fill()
---------------------
作者:gzh_love_python
來源:CSDN
原文:https://blog.csdn.net/gzh_love_python/article/details/88204664
版權宣告:本文為博主原創文章,轉載請附上博文連結!
接下來就是最後的部分了,畫出臉頰,同樣是用微積分思想,這裡需要強調一下,角度的不斷修正,來自於turtle相對於水平線的相對角度,而得出這個角度的方法就是做切線,還是離不開微積分。
def cheek():
t.pensize(2)
t.fillcolor(“pink”)
t.pencolor(“pink”)
t.begin_fill()
for c in range(90):
t.fd(10 / 8)
t.left(1)
t.left(90)
for c in range(90):
t.fd(10 / 8)
t.left(1)
t.end_fill()
---------------------
作者:gzh_love_python
來源:CSDN
原文:https://blog.csdn.net/gzh_love_python/article/details/88204664
版權宣告:本文為博主原創文章,轉載請附上博文連結!
最後,就是主體框架了
t.begin_fill() t.circle(200,360+90) t.end_fill() # 畫上嘴脣
upmouth() # 畫下嘴脣
down_mouth() # 修正角度
t.left(50) t.pencolor(“black”) # 畫右眼睛 eyes() # 修正角度
t.right(90)
# 修正座標
t.up()
t.goto(-10,310)
t.down()
# 畫左眼睛
eyes()
# 修正角度
t.right(130)
t.left(45)
# 畫右臉頰
t.up()
t.goto(150, 250)
t.down()
cheek()
# 畫左臉頰
t.up()
t.left(90)
t.goto(-50,250)
t.down()
cheek()
t.exitonclick()
12345678910111213141516171819202122232425262728
if name == “main”:
main()
---------------------
作者:gzh_love_python
來源:CSDN
原文:https://blog.csdn.net/gzh_love_python/article/details/88204664
版權宣告:本文為博主原創文章,轉載請附上博文連結!
相關文章
- 使用python的turtle繪畫滑稽臉Python
- Python指令碼檢測笑臉漏洞Python指令碼
- canvas繪製笑臉程式碼例項Canvas
- 今日完善了字元編碼過濾器。字元過濾器
- 用Python實現《計算的本質:深入剖析程式和計算機》中的程式碼Python計算機
- 用Python程式碼畫世界盃吉祥物拉伊卜(附程式碼)Python
- python的個稅計算程式碼Python
- 200 行 Python 程式碼做個換臉程式(附原始碼)Python原始碼
- YTU-OJ-Problem A: A程式碼完善--向量的運算
- 人臉識別的簡要介紹(附例項、Python程式碼)Python
- BERT預訓練模型的演進過程!(附程式碼)模型
- 之前用的一個多程式python爬蟲Python爬蟲
- torch.einsum 的計算過程
- 安裝、完善slackware的全部過程(轉)
- 笑臉漏洞復現
- 用 150 行 Python 程式碼寫的量子計算模擬器Python
- 有關於儲存過程的一個笑話儲存過程
- Spark計算過程分析Spark
- 程式設計師的幽默笑話程式設計師
- canvas繪製笑臉表情Canvas
- canvas卡通形象笑臉效果Canvas
- 閒來無事畫了一下'架構'圖.架構
- [20211217]滑稽可笑的程式程式碼2.txt
- Python 計算程式執行多久程式碼Python
- 計算機啟動過程計算機
- Python程式設計 聖誕樹教程 (附程式碼)程式設計師的浪漫Python程式設計師
- 漫談計算機組成原理(一)之程式執行的過程計算機
- 詳解移動和桌面應用程式的程式碼簽名過程
- 用50行Python程式碼製作一個計算器Python
- 用程式碼畫兩棵聖誕樹送給你【附詳細程式碼】
- 用 Python 20 秒畫完小豬佩奇“社會人”!附效果視訊+完整程式碼Python
- 這是一篇用python畫3D愛心的程式碼Python3D
- 用Python開發實用程式 – 計算器Python
- 【Java】程式設計過程中遇到的中文編碼問題Java程式設計
- 設計師的專屬魔法,用SVG動畫重現布林運算的設計過程SVG動畫
- 自動化的過程(程式設計)程式設計
- 程式碼提交過程
- 通過修改登錄檔刪 Edge瀏覽器的笑臉反饋標誌瀏覽器