用户:
Rick_Folish查看:0 回复:0 评论:0 创建时间:2023-02-11T22:05:04
【作品展示】

【作品介绍】
可以自行编辑的立体图形绘制程序,相较于上一个版本优化了透视原理
【作品源代码】
from turtle import *
from math import *
import time
tracer(0)
pu()
run = True
hideturtle()
pensize(2)
d = 1500
s = 1/50
data0 = [(-50, -50, -50), (-50, 50, -50), (-50, 50, 50), (-50, -50, 50), (50, -50, -50), (50, 50, -50),
(50, 50, 50), (50, -50, 50), (0, 0, -100), (0, -100, 0), (0, 0, 100), (0, 100, 0), (100, 0, 0), (-100, 0, 0)] # (z,x,y)
data1 = data0.copy()
data2 = [(8, 0), (8, 1), (8, 4), (8, 5), (9, 0), (9, 7), (9, 4), (9, 3), (10, 3), (10, 2), (10, 7), (10, 6), (11, 6), (11, 2), (11, 5),
(11, 1), (12, 7), (12, 6), (12, 5), (12, 4), (13, 3), (13, 2), (13, 1), (13, 0)]
while run == True:
hr0 = 10
vr0 = 0
for j in range(max(hr0, vr0)):
vr = vr0/(max(hr0, vr0))
hr = hr0/(max(hr0, vr0))
for a in range(len(data0)):
data1[a] = (data1[a][0]*cos(radians(vr))-data1[a][2]*sin(radians(vr)),
data1[a][1], data1[a][0]*sin(radians(vr))+data1[a][2]*cos(radians(vr)))
for a in range(len(data0)):
data1[a] = (data1[a][1]*sin(radians(hr))+data1[a][0]*cos(radians(hr)),
data1[a][1]*cos(radians(hr))-data1[a][0]*sin(radians(hr)), data1[a][2])
clear()
for i in range(len(data2)):
pu()
goto(data1[data2[i][0]][1]/abs(d-data1[data2[i][0]][0])*d,
data1[data2[i][0]][2]/abs(d-data1[data2[i][0]][0])*d)
pd()
goto(data1[data2[i][1]][1]/abs(d-data1[data2[i][1]][0])*d,
data1[data2[i][1]][2]/abs(d-data1[data2[i][1]][0])*d)
pu()
update()
time.sleep(s)
update()
done()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn