猫史档案馆


【Python作品分享】python做的3D模型【作品秀】

用户:宝猪宝猪查看:0 回复:0 评论:0 创建时间:2021-05-01T20:01:24


【作品展示】

center_image

 

【作品介绍】

学习了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


回复

上一页1 页 / 共 0下一页