Python功能制作之简单的3D特效

需要导入的库:

pygame: 这是一个游戏开发库,用于创建多媒体应用程序,提供了处理图形、声音和输入的功能。

from pygame.locals import *: 导入pygame库中的常量和函数,用于处理事件和输入。

OpenGL.GL: 这是OpenGL的Python绑定库,用于编写和执行OpenGL代码。

OpenGL.GLUT: 这也是OpenGL的Python绑定库,用于提供与设备无关的窗口和交互功能。

random: 这是Python的内置模块,用于生成随机数。

math: 这是Python的内置模块,提供了数学函数的支持。

OpenGL.GLU: 这是OpenGL的Python绑定库,提供了一些OpenGL实用函数,如透视投影。

终端输入:

pip install pygame

pip install PyOpenGL

源码:

import pygame
from pygame.locals import *
from OpenGL.GL import *
from OpenGL.GLUT import *
from random import randint, uniform
import math
from OpenGL.GLU import gluPerspective# 初始化Pygame
pygame.init()# 窗口大小
width, height = 800, 600# 初始化Pygame显示
pygame.display.set_mode((width, height), DOUBLEBUF|OPENGL)# 透视投影设置
gluPerspective(45, (width/height), 0.1, 50.0)# 初始摄像机位置
glTranslatef(0.0, 0.0, -5)# 粒子类
class Particle:def __init__(self):self.x = 0self.y = 0self.z = 0self.size = uniform(0.01, 0.05)self.speed_x = uniform(-0.1, 0.1)self.speed_y = uniform(-0.1, 0.1)self.speed_z = uniform(0.1, 0.5)self.color = (uniform(0, 1), uniform(0, 1), uniform(0, 1))def update(self):self.x += self.speed_xself.y += self.speed_yself.z += self.speed_zdef draw(self):glBegin(GL_POINTS)glColor3f(*self.color)glVertex3f(self.x, self.y, self.z)glEnd()# 创建粒子列表
particles = [Particle() for _ in range(10000)]# 主循环
running = True
while running:for event in pygame.event.get():if event.type == pygame.QUIT:running = FalseglRotatef(1, 3, 1, 1)glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)# 绘制粒子for particle in particles:particle.update()particle.draw()pygame.display.flip()pygame.time.wait(30)# 退出程序
pygame.quit()

效果:

一闪而释的效果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/79986.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java接口详解

接口 接口的概念 在现实生活中,接口的例子比比皆是,比如:笔记本上的USB口,电源插座等。 电脑的USB口上,可以插:U盘,鼠标,键盘等所有符合USB协议的设备 电源插座插孔上,…

构建智慧停车场:4G DTU实现无线数据高速传输

物联网技术的快速发展使得各种设备能够实现互联互通,无线网络技术给我们的日常生活带来了极大的便利。其中的网络技术如无线WiFi及4G网络已经成为了物联网应用中不可或缺的组成部分。而在工业领域中对4G无线路由器的应用是非常广泛的,人们通过4G工业路由…

为何汽车品牌如此钟爱数字人?揭秘一种很新的「交互」营销思路

随着新能源补贴退坡,互联网行业高速发展的红利衰退,汽车行业竞争越来越激烈。 在数智化潮流冲击下,传统车企和新势力汽车品牌都纷纷借助数字人营销,打破增长困境,致力于推动数字人在车端以及营销内容的广泛应用&#…

Server2016安装SQL server数据库遇到异常解决

首先看几个会出现的异常,下边看解决办法: 第一步: 先修改安装包x86\setup目录下的setupsql.exe,以Xp,SP3兼容模式运行, 这个右键,属性,兼容性,修改就行,类似这样 第二步: 修改c:…

《多模态语料库 “书生·万卷” 1.0 详细解读 | 附下载地址》

国产大模型时代,高质量、开源、可信数据的重要性不言而喻,但它的稀缺性也是 AI 同行有目共睹的。为了改变这一现状,OpenDataLab 联合大模型语料数据联盟构建了“书生万卷”数据集,旨在为学术界及产业界提供更符合主流中文价值对齐…

LeetCodeHot100:Python 版本之贪心

121. 买卖股票的最佳时机 55. 跳跃游戏 那么这个问题就转化为跳跃覆盖范围究竟可不可以覆盖到终点!(看覆盖范围) 每次移动取最大跳跃步数(得到最大的覆盖范围),每移动一个单位,就更新最大覆盖范围。 贪心算法局部最…

Unity小项目__打砖块

//1.添加地面 1)创建一个平面,命名为Ground。 2)创建一个Materials文件夹,并在其中创建一个Ground材质,左键拖动其赋给平面Plane。 3)根据喜好设置Ground材质和Ground平面的属性。 // 2.创建墙体 1)创建一个Cube&…

国产化-达梦数据库安装2

目录 DM8数据库下载地址 安装一路狂飙next 启动服务 随着国家政府的推广、越来越多的政府项目、在系统部署需要采购国产服务器、数据库等 DM8数据库下载地址 https://eco.dameng.com/download/ 安装一路狂飙next windos安装比较简单直接next即可 仅仅记录几个关键疑问地方k…

手把手教你搭建腾讯云服务器入门(图文教程)

腾讯云服务器使用教程包括注册账号实名认证、选择云服务器CVM或轻量应用服务器CPU内存带宽和系统盘配置、安全设置和云服务器远程连接、安全组端口开通教程、云服务器环境部署以搭建网站为例手把手网站上线,云服务器文件传输和数据备份以及技术支持等详细说明&#…

【C++杂货铺】探索string的底层实现

文章目录 一、成员变量二、成员函数2.1 默认构造函数2.2 拷贝构造函数2.3 operator2.4 c_str()2.5 size()2.6 operator[ ]2.7 iterator2.8 reserve2.9 resize2.10 push_back2.11 append2.12 operator2.13 insert2.14 erase2.15 find2.16 substr2.17 operator<<2.18 opera…

musl libc ldso 动态加载研究笔记:动态库的加载次序与初始化次序

前言 musl ldso 是按照什么次序加载动态链接的应用程序的共享库的&#xff1f;如果共享库之间有依赖&#xff0c; musl ldso 如何处理先初始化哪个 共享库&#xff1f; musl ldso 的代码可以在 musl 官方代码&#xff1a; ldso\dlstart.c 与 ldso\dynlink.c&#xff0c;其中动…

9 - 蓝图

蓝图: 将项目分成一个个单独的app模块&#xff0c;然后将所有app分配不同的处理功能&#xff0c;通过路由分配将它们连接成一个大项目 目录结构: 搭建框架: (1). 新键apps 包,编辑__init__.py文件 from flask import Flask import settings from apps.user.view import user_b…