用户:
宝猪查看:0 回复:0 评论:0 创建时间:2021-05-01T20:01:24
【作品展示】

【作品介绍】
学习了scratch上的3D教程,做了这么一个立方体
【作品源代码】
import math
import time
import pygame
import sys
pygame.init()
b = 0.05
xt = 0
yt = 0
nx = 0
ny = 0
def sin(f):
return math.sin(math.radians(f))
def cos(f):
return math.cos(math.radians(f))
def move(x, y, z):
return {'x': (((cos(xt) * x - sin(xt) * y) * b) / 2), 'y': ((((cos(xt) * y + sin(xt) * x) * cos(yt) + sin(yt) * z) * b) / 2)}
def dl(x, y, z):
global nx, ny
pygame.draw.line(screen,(0,255,255), (300+nx,300+ny),(move(x,y,z)['x']+300,move(x,y,z)['y']+300),5)
nx = move(x, y, z)['x']
ny = move(x, y, z)['y']
def draw(x, y, z, a):
global nx, ny
nx = move(a + x, a + y, a + z)['x']
ny = move(a + x, a + y, a + z)['y']
dl((0 - a) + x, a + y, a + z)
dl((0 - a) + x, (0 - a) + y, a + z)
dl(a + x, (0 - a) + y, a + z)
dl(a + x, a + y, a + z)
dl(a + x, a + y, (0 - a) + z)
dl(a + x, a + y, a + z)
dl((0 - a) + x, a + y, a + z)
dl((0 - a) + x, a + y, (0 - a) + z)
dl((0 - a) + x, a + y, a + z)
dl((0 - a) + x, (0 - a) + y, a + z)
dl((0 - a) + x, (0 - a) + y, (0 - a) + z)
dl((0 - a) + x, (0 - a) + y, a + z)
dl(a + x, (0 - a) + y, a + z)
dl(a + x, (0 - a) + y, (0 - a) + z)
dl(a + x, a + y, (0 - a) + z)
dl((0 - a) + x, a + y, (0 - a) + z)
dl((0 - a) + x, (0 - a) + y, (0 - a) + z)
dl(a + x, (0 - a) + y, (0 - a) + z)
screen = pygame.display.set_mode((600,600))
pygame.display.set_caption("3D模型")
while True:
for e in pygame.event.get():
if (e.type == pygame.QUIT):
pygame.quit()
sys.exit()
if (e.type == pygame.KEYDOWN):
if (e.key == pygame.K_UP):
b += 0.01
if (e.key == pygame.K_DOWN):
b -= 0.01
screen.fill((0, 0, 0))
draw(1000, 1000, 1000, 3000)
xt += ((pygame.mouse.get_pos()[0] / 2 - xt) / 10)
yt += ((pygame.mouse.get_pos()[1] / 2 - yt) / 10)
pygame.mouse.set_visible(False)
time.sleep(0.02)
pygame.display.update()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn