Python3使用turtle繪制超立方體圖形示例
本文實例講述了Python3使用turtle繪制超立方體圖形。分享給大家供大家參考,具體如下:
利用Python3中turtle的繪制超立方體。

繪圖思路:
1)求出邊長100的超立方體的點坐標(biāo);
以豎直線為依據(jù),將點分為上下兩組:
a為上邊點列表,b為下邊點列表:
a = [[120.71, 50], [50, 120.71], [-50, 120.71], [-120.71, 50], [-50, -20.71], [50, -20.71], [20.71, 50],[-20.71, 50]] b = [[120.71, -50], [50, 20.71], [-50, 20.71], [-120.71, -50], [-50, -120.71], [50, -120.71], [20.71, -50],[-20.71, -50]]
2)編寫繪制直線函數(shù);
3)編寫主程序:繪制點,繪制六角形直線,繪制豎直直線,繪制斜線
代碼片段如下,可能不是最簡潔的,如有好的建議,請不吝指正。
import turtle
# 創(chuàng)建繪制直線函數(shù)
def drawLine(p1, p2, size=3, color="black"):
turtle.penup()
turtle.goto(p1)
turtle.pensize(size)
turtle.pencolor(color)
turtle.pendown()
turtle.goto(p2)
def main():
# 求取點后,將超立方體點分為上下兩個部分,兩個列表
a = [[120.71, 50], [50, 120.71], [-50, 120.71], [-120.71, 50], [-50, -20.71], [50, -20.71], [20.71, 50],
[-20.71, 50]]
b = [[120.71, -50], [50, 20.71], [-50, 20.71], [-120.71, -50], [-50, -120.71], [50, -120.71], [20.71, -50],
[-20.71, -50]]
# 繪制點
turtle.pencolor("red")
turtle.penup()
for i in range(len(a)):
turtle.goto(a[i])
turtle.down()
turtle.dot(10, "red")
turtle.penup()
for i in range(len(b)):
turtle.goto(b[i])
turtle.down()
turtle.dot(10, "red")
turtle.penup()
# 繪制六邊形直線
for i in range(6):
if i <= 4:
drawLine(a[i], a[i + 1])
drawLine(b[i], b[i + 1])
else:
drawLine(a[i], a[0])
drawLine(b[i], b[0])
# 繪制豎直線
for i in range(len(a)):
drawLine(a[i], b[i])
# 繪制斜線
drawLine(a[6], a[0])
drawLine(a[6], a[2])
drawLine(a[6], a[4])
drawLine(a[7], a[1])
drawLine(a[7], a[3])
drawLine(a[7], a[5])
drawLine(b[6], b[0])
drawLine(b[6], b[2])
drawLine(b[6], b[4])
drawLine(b[7], b[1])
drawLine(b[7], b[3])
drawLine(b[7], b[5])
turtle.done()
if __name__ == '__main__':
main()
pass
運行結(jié)果:

注:使用eclipse+pyDev結(jié)合Python3環(huán)境開發(fā)時,會提示:Undefined variable from import: penup及Undefined variable from import: goto等錯誤,無需理會直接運行仍可繪制出該圖形。
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)學(xué)運算技巧總結(jié)》、《Python圖片操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
Python實現(xiàn)解析與生成JSON數(shù)據(jù)
JSON文件是一種輕量級的數(shù)據(jù)交換格式,它采用了一種類似于JavaScript語法的結(jié)構(gòu),可以方便地在不同平臺和編程語言之間進行數(shù)據(jù)交換,下面我們就來學(xué)習(xí)一下Python如何使用內(nèi)置的json模塊來讀取和寫入JSON文件吧2023-12-12
python使用循環(huán)打印所有三位數(shù)水仙花數(shù)的實例
今天小編就為大家分享一篇python使用循環(huán)打印所有三位數(shù)水仙花數(shù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
python基于concurrent模塊實現(xiàn)多線程
這篇文章主要介紹了python基于concurrent模塊實現(xiàn)多線程,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04
python中判斷類型函數(shù)isinstance()示例詳解
isinstance()函數(shù)是Python的內(nèi)置函數(shù),用于判斷一個變量是否是某個類型或者是該類型的子類的實例,在Python中,所有類都繼承自object,所以任何實例都會是object的實例,本文給大家介紹python中判斷類型函數(shù)isinstance(),感興趣的朋友一起看看吧2024-10-10
python-docx修改已存在的Word文檔的表格的字體格式方法
今天小編就為大家分享一篇python-docx修改已存在的Word文檔的表格的字體格式方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05

