import turtle as tl import math data = [] f = open("datas.txt","r") for line in f: line = eval(line) data.append(line) N = 1000 + 1 # N由上個程序中計算出的級數數量決定,加1是因為有一個角速度為0的量(直流分量) x = [0] * N y = [0] * N tl.setup(960,720) tl.penup() tl.pensize(2) # 畫筆粗細 # 儲存原始代碼的電腦因新型肺炎疫情被隔離了,這是我根據印象重新做的,可能存在錯誤,疫情結束后會更正。 # 三角函數中的值是n * 2 * pi * t , 其中n取0,1,-1,2,-2……,t的范圍是[0,1],當然t取大了沒關系,會重復描已經畫好的圖形 for t in range(10000): for i in range(len(data)): if i % 2 == 0: x[i] = data[i][0] * math.cos(i / 10000 * 3.14 * t) - data[i][1] * math.sin(i / 10000 * 3.14 * t) y[i] = data[i][0] * math.sin(i / 10000 * 3.14 * t) + data[i][1] * math.cos(i / 10000 * 3.14 * t) else: x[i] = data[i][0] * math.cos(-(i+1) / 10000 * 3.14 * t) - data[i][1] * math.sin(-(i+1) / 10000 * 3.14 * t) y[i] = data[i][0] * math.sin(-(i+1) / 10000 * 3.14 * t) + data[i][1] * math.cos(-(i+1) / 10000 * 3.14 * t) tl.goto(int(sum(x)),-int(sum(y))) # 正負可以控制圖形的左右鏡像,上下鏡像,乘除可以控制縮放 tl.pendown()