资源简介
毕业设计!模拟音乐喷泉,随着音频文件的起伏,OpenGL所绘制的音乐喷泉大小和水量缓急出现相应变化!

代码片段和文件信息
#include “AirFountain.h“
#include “stdlib.h“
#include
#define RandomFactor 2.0
GLfloat AccFactor1=0.25;//存储上次重力系数
extern GLfloat theAccFactor;
extern GLint Steps;
extern GLint RaysPerStep;
extern GLint DropsPerRay;
//////////////////////////////////////////////////////////////////////////
//取得浮点随机数
//////////////////////////////////////////////////////////////////////////
GLfloat GetRandomFloat(GLfloat range)
{
return (GLfloat)rand() / (GLfloat)RAND_MAX * range * RandomFactor;
}
//////////////////////////////////////////////////////////////////////////
//设置速度
//////////////////////////////////////////////////////////////////////////
void CDrop::SetConstantSpeed(SF3dVector NewSpeed)
{
ConstantSpeed = NewSpeed;
}
//////////////////////////////////////////////////////////////////////////
//设置重力因子
//////////////////////////////////////////////////////////////////////////
void CDrop::SetAccFactor (GLfloat NewAccFactor)
{
AccFactor = NewAccFactor;
}
//////////////////////////////////////////////////////////////////////////
//设置时间
//////////////////////////////////////////////////////////////////////////
void CDrop::SetTime(GLfloat NewTime)
{
time = NewTime;
}
//////////////////////////////////////////////////////////////////////////
//粒子实时获取新的速度
//////////////////////////////////////////////////////////////////////////
void CDrop::GetNewPosition(SF3dVector * PositionVertex float dtime CPool * pPool CAirFountain * pAirFountain)
{
SF3dVector Position;
time += dtime*20.0f;//20倍率,速度参数
GLfloat delta;
//取得水滴总数
GLint allDropsCount;
allDropsCount=Steps*RaysPerStep*DropsPerRay;
if (time > 0.0f)
{
Position.x = ConstantSpeed.x * time;
delta=theAccFactor-AccFactor1;
Position.y = ConstantSpeed.y * time - (AccFactor1+delta/(8*allDropsCount)) * time * time;
AccFactor1=AccFactor1+delta/(8*allDropsCount);
Position.z = ConstantSpeed.z * time;
PositionVertex->x = Position.x;
PositionVertex->y = Position.y;
PositionVertex->z = Position.z;
if (Position.y < 0.0)
{
time = time - int(time);
if (time > 0.0) time -= 1.0;
//水波
int OscillatorX = (int)((Position.x+pAirFountain->Position.x)/pPool->GetOscillatorDistance());
int OscillatorZ = (int)((Position.z+pAirFountain->Position.z)/pPool->GetOscillatorDistance());
//水波参数,第三个参数为水波波动强度参数
pPool->AffectOscillator(OscillatorXOscillatorZAffectOsc);
}
}
else//水滴消失
{
PositionVertex->x = 0.0;
PositionVertex->y = 0.0;
PositionVertex->z = 0.0;
}
}
//////////////////////////////////////////////////////////////////////////
//喷泉初始化
//////////////////////////////////////////////////////////////////////////
void CAirFountain::Initialize(GLint Steps GLint RaysPerStep GLint DropsPerRayGLfloat AngleOfDeepestStep GLfloat AngleOfHighestStepGLfloat RandomAngleAdditionGLfloat AccFactor)
{
//获取水滴总个数
m_NumDropsComplete = Steps*RaysPerStep*DropsPerRay
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 45056 2010-05-19 12:23 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\可执行文件\Fountain.exe
文件 196662 2003-05-07 10:59 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\可执行文件\ground.bmp
文件 196662 2003-05-08 11:00 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\可执行文件\rock.bmp
文件 196662 2003-05-07 10:49 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\可执行文件\water.bmp
文件 968 2010-05-19 12:07 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\可执行文件\致爱丽丝.txt
文件 479922 2010-05-04 21:57 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\可执行文件\致爱丽丝.wav
文件 494000 2012-07-18 23:04 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\文档\喷泉真实感模拟.pdf
文件 6109 2010-05-07 00:34 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\AirFountain.cpp
文件 956 2010-04-26 00:33 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\AirFountain.h
文件 1921 2003-05-07 09:41 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\camera.cpp
文件 1269 2003-05-07 09:41 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\camera.h
文件 23748 2010-06-13 17:09 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\Fountain.aps
文件 3008 2010-06-13 17:10 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\Fountain.clw
文件 2091 2010-04-25 20:45 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\Fountain.cpp
文件 5218 2010-05-19 11:08 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\Fountain.dsp
文件 524 2010-04-25 20:45 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\Fountain.dsw
文件 1346 2010-04-25 20:45 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\Fountain.h
文件 164864 2010-06-13 17:13 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\Fountain.ncb
文件 49664 2010-06-13 17:13 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\Fountain.opt
文件 1757 2010-05-19 12:23 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\Fountain.plg
文件 8271 2010-05-19 12:35 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\Fountain.rc
文件 27124 2010-05-19 12:35 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\FountainDlg.cpp
文件 1658 2010-05-19 12:24 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\FountainDlg.h
文件 196662 2003-05-07 10:59 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\ground.bmp
文件 7359 2010-04-26 10:38 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\pool.cpp
文件 855 2003-05-08 10:19 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\pool.h
文件 3615 2010-04-25 20:45 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\ReadMe.txt
文件 1078 2010-04-25 20:45 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\res\Fountain.ico
文件 400 2010-04-25 20:45 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\res\Fountain.rc2
文件 1882 2010-05-19 12:35 1OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\OpenGL喷泉真实感模拟\源程序\Fountain\resource.h
............此处省略23个文件信息
相关资源
- 模拟QQ登陆界面,按钮无效自己写
- OpenGL参考手册
- 交通咨询模拟系统完整代码
- 卡西欧工程计算器模拟器Casio FX
- S7-200模拟量编程实例
- 波浪模拟UDF程序
- 51模拟SPI读写SD卡(包括Fat和Fat32文件
- Qt Creator opengl实现四元数鼠标控制轨迹
- 分页系统模拟实验 操作系统 课程设
- OpenGL文档,api大全,可直接查询函数
- 课程作业:模拟仓库管理系统
- 模拟段页式虚拟存储管理中地址转换
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- STM32F103 CC2500完整驱动(模拟SPI)
- 报文模拟仿真测试工具2.0
- 模拟ATM柜员机系统--连接数据库
- HOOK 记录和模拟 Keyboard Mouse
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 模拟首次适应动态分区存储管理方案
- 基于OPENGL的光线跟踪源代码368758
- 磁盘调度算法的模拟实现及对比
- VC 实现三维旋转(源码)
- 模拟一个文件管理系统
- 电梯模拟程序C/C 算法实现
- 自编用openGL实现3D分形树,分形山
- 计算机网络课程设计—ARQ协议模拟实
- OpenGL球形贴图自旋程序
- 模拟电路课程设计(音频放大电路设
评论
共有 条评论