您好,登錄后才能下訂單哦!
本文實例講述了Python3使用turtle繪制超立方體圖形。分享給大家供大家參考,具體如下:
利用Python3中turtle的繪制超立方體。
繪圖思路:
1)求出邊長100的超立方體的點坐標;
以豎直線為依據,將點分為上下兩組:
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)編寫繪制直線函數;
3)編寫主程序:繪制點,繪制六角形直線,繪制豎直直線,繪制斜線
代碼片段如下,可能不是最簡潔的,如有好的建議,請不吝指正。
import turtle # 創建繪制直線函數 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
運行結果:
注:使用eclipse+pyDev結合Python3環境開發時,會提示:Undefined variable from import: penup及Undefined variable from import: goto等錯誤,無需理會直接運行仍可繪制出該圖形。
更多關于Python相關內容可查看本站專題:《Python數學運算技巧總結》、《Python圖片操作技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。