最近博客访问量大涨啊,我感到非常开心,因此我决定更新一下我的博客。最近做了一个小制作------图片魔方,放上代码,希望对大家有用。

这个东西很简单,主要用到了一个python库“pi3d”,因此我们需要先安装这个库:

sudo apt-get update
sudo apt-get install python3
sudo pip3 install pi3d

安装完成后就可以使用这个小玩意了:

import pi3d

# create display
DISPLAY = pi3d.Display.create(background=(0,0,0,0), frames_per_second
=30)

# create shader
shader = pi3d.Shader('uv_flat')

# create textures
textures = []
images = ['p1.jpg', 'p2.jpg', 'p3.jpg', 'p4.jpg', 'p5.jpg', 'p6.jpg']
for image in images:
    textures.append(pi3d.Texture('textures/'+image))

# create camera
CAMERA = pi3d.Camera(eye=(0.0,0.0,-3.0))

# creat keyboard object
mykeys = pi3d.Keyboard()

# create cube
cube = pi3d.Triangle(corners=((0,0),(0,0),(0,0)))
cube.children.append(pi3d.Plane(z=-0.5))
cube.children.append(pi3d.Plane(y=0.5, rx=90))
cube.children.append(pi3d.Plane(x=-0.5, rx=90, ry=90))
cube.children.append(pi3d.Plane(z=0.5, ry=180, rz=-90))
cube.children.append(pi3d.Plane(y=-0.5, rx=180, ry=90, rz=90))
cube.children.append(pi3d.Plane(x=0.5, ry=-90))
for idx, child in enumerate(cube.children):
    child.set_draw_details(shader, [textures[idx]])

t = 0

# display loop
while DISPLAY.loop_running():
    #listen for keystrokes
    k = mykeys.read()
    if k == 27: # if ESC key is pressed
        mykeys.close()
        DISPLAY.destroy()
        break

    tm = t % 270
    if tm < 90:
        CAMERA.rotateX(-1)
        CAMERA.rotateY(0)
        CAMERA.rotateZ(0)
    elif tm < 180:
        CAMERA.rotateX(0)
        CAMERA.rotateY(0)
        CAMERA.rotateZ(-1)
    else:
        CAMERA.rotateX(0)
        CAMERA.rotateY(-1)
        CAMERA.rotateZ(0)

    cube.draw()

    t += 1

如上便是图片魔方的代码,你可以通过修改第12行的代码来添加你自己的图片,需要注意的是这里我们把所有图片放到了textures文件夹下,因此你需要先创建一个textures文件夹,并把你的图片放到textures文件夹下,然后修改第12行的代码以顺利运行这个代码。

以上便是所有的内容啦,希望对大家有用!

最后修改日期:2020年7月28日

作者

留言

发表评论