最近博客访问量大涨啊,我感到非常开心,因此我决定更新一下我的博客。最近做了一个小制作------图片魔方,放上代码,希望对大家有用。
这个东西很简单,主要用到了一个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行的代码以顺利运行这个代码。
以上便是所有的内容啦,希望对大家有用!
留言