Article Outline
Python turtle example 'ryByteDesign003 tc'
Functions in program:
def main():
def 主函數():
python ryByteDesign003 tc
Python turtle example: ryByteDesign003 tc
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
'''
ryByteDesign003_tc.py
'''
#from turtle import Turtle, mainloop
from turtle_tc import 龜類, 主迴圈
class 設計師類(龜類):
def __init__(我, 比例= 1):
龜類.__init__(我)
我.比例= 比例
def 設計(我, 位置):
我.提筆()
for i in range(5):
我.前進(64.65 *我.比例)
我.下筆()
我.畫輪子(我.位置())
我.提筆()
我.後退(64.65 *我.比例)
我.右轉(72)
我.提筆()
我.前往(位置)
我.右轉(36)
我.前進(24.5 *我.比例)
我.右轉(198)
我.下筆()
我.畫中央星()
我.取幕().追蹤器(True)
def 畫輪子(我, 位置):
我.右轉(54)
for i in range(4):
我.畫五角組(位置)
我.下筆()
我.左轉(36)
for i in range(5):
我.畫三角組(位置)
我.左轉(36)
for i in range(5):
我.下筆()
我.右轉(72)
我.前進(28 *我.比例)
我.提筆()
我.後退(28 *我.比例)
我.左轉(54)
我.取幕().更新()
def 畫三角組(我, 位置):
舊頭向= 我.頭向()
我.下筆()
我.後退(2.5 *我.比例)
我.畫三角(+31.5)
我.提筆()
我.前往(位置)
我.設頭向(舊頭向)
我.下筆()
我.後退(2.5 *我.比例)
我.畫三角(-31.5)
我.提筆()
我.前往(位置)
我.設頭向(舊頭向)
我.左轉(72)
我.取幕().更新()
def 畫五角組(我, 位置):
舊頭向= 我.頭向()
我.提筆()
我.前進(29 * 我.比例)
我.下筆()
for i in range(5):
我.前進(18 * 我.比例)
我.右轉(72)
我.畫多角(18, -75)
我.提筆()
我.前往(位置)
我.設頭向(舊頭向)
我.前進(29 * 我.比例)
我.下筆()
for i in range(5):
我.前進(18 * 我.比例)
我.右轉(72)
我.畫多角(18, +75)
我.提筆()
我.前往(位置)
我.設頭向(舊頭向)
我.左轉(72)
我.取幕().更新()
def 畫多角(我, 邊長, 角度): # 角度 可正可負
if 邊長 < 2: return
我.前進(邊長 *我.比例)
我.左轉(角度)
邊長 -= .38
我.畫多角(邊長, 角度)
def 畫三角(我, 邊長): # 邊長 可正可負
if abs(邊長) < 4: return
正負號= 邊長/abs(邊長)
我.前進(abs(邊長) *我.比例)
我.左轉(111 *正負號)
我.前進(abs(邊長) /1.78 *我.比例)
我.左轉(111 *正負號)
我.前進(abs(邊長) /1.30 *我.比例)
我.左轉(146 *正負號)
邊長 *= .75
我.畫三角(邊長)
def 畫中央星(我, 邊長= 46, 角度= 143.4):
'''
這裡有 2 個神奇數字,46, 143.4
'''
if 邊長 < 7.5: return
我.前進(邊長 *我.比例);
我.左轉(角度)
邊長 -= 1.2
我.畫中央星(邊長, 角度)
def 主函數():
小王= 設計師類(比例= 2)
小王.速度(0)
小王.形狀('turtle')
def 色位角(顏色= 'red', 位置= (0,0), 角度= 0):
小王.顏色(顏色)
小王.提筆()
小王.前往(位置)
小王.設頭向(角度)
小王.蓋印()
小王.下筆()
def 畫小零件(到中心距離= 0):
色位角('black',(+L,0)); 小王.畫三角(+31.5)
色位角('gray', (+L,0)); 小王.畫三角(-31.5)
色位角('black',(-L,0)); 小王.畫多角(18, +75)
色位角('gray', (-L,0)); 小王.畫多角(18, -75)
色位角('black',(0,+L)); 小王.畫中央星()
色位角('gray', (0,+L), 角度=180); 小王.畫中央星()
for 角度 in [0,90,180,270]:
色位角('red', (+L,+L),角度); 小王.畫中央星()
for 角度 in [0,90,180,270]:
色位角('green',(-L,+L),角度); 小王.畫三角組(小王.位置())
for 角度 in [0,90,180,270]:
色位角('blue', (-L,-L),角度); 小王.畫五角組(小王.位置())
L= 300
畫小零件(+L)
色位角('purple',(+L,-L)); 小王.畫輪子(小王.位置())
色位角('brown', (0,0)); 小王.設計( 小王.位置())
def main():
主函數()
return "做完了!"
if __name__ == '__main__':
主函數()
主迴圈()
Python links
- Learn Python: https://pythonbasics.org/
- Python Tutorial: https://pythonprogramminglanguage.com