CodeForge QQ客服 CodeForge 400电话 客服电话 4006316121
首页 » 源代码 » 喷泉元代码 » main.cpp

main.cpp ( 文件浏览 )

文件源自:喷泉元代码
  • 吾问无为谓 发布于2014-04-19
  • 浏览次数:6
  • 下载次数:0
  • 下载需 1 积分
  • 侵权举报
			#include <QtCore/QCoreApplication>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <GL/glu.h>
#include <GL/glut.h>
//#include "loadtga.c"

#pragma comment(lib,"winmm.lib")
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )  // 设置入口地址,隐藏控制台窗口
#define PI 3.14159
#define Num 10
#define MAX 1
#define COUNT 3

//struct particle
//{

//  float lifetime;       // 粒子的寿命
//  float v;       // 粒子的运动速度
//  float d;       // 粒子的运动方向
//  float x, y, z; // 粒子的位置坐标
//  float xd, zd;  // X 和 Z 方向上的增量
//  char type;     // 粒子的状态(移动或淡化)
//  float a;       // 粒子淡化的a值
//  struct particle *next, *prev;
//
};
//struct point
//{

//  float x, y, z;//三维空间坐标点
//
};

/**********************************************************************************************************/
//GLUquadricObj *obj;     //二次曲面对象
int WindW, WindH;

//GLuint COUNTS=4;
//GLuint N=4;
//GLuint MKEY;
//GLuint lighting=0;
//float axis=65;
//int H=92;

//GLuint texture[COUNT];     // 纹理ID
//const char *hn[COUNT]={
"particle.tga","background.tga","ground1.tga"
};
//float a=0;
//struct particle *tn[Num];
//struct particle *sn[MAX];
//struct particle *rn[Num];
//char temp[128]="FPS: 0.000000";
//// 以下是用于计算帧率的变量
//int frame_counter=0;
//time_t curtime;
//clock_t last_time;
//float cur_time;
//float total_frames;
//struct point up, cam;        //  摄像机的位置和向上的方向矢量
//        //定义光源
//GLfloat global_ambient[]={
0.6f,0.6f,0.6f,0.0f
};
//GLfloat light_position0[]={
0.0f,0.0f,100.0f,1.0f
};  // 设置光源的位置
//GLfloat light_ambient0[]={
1.0f,0.0f,0.0f,1.0f
};     // 定义环境光的颜色
//GLfloat light_diffuse0[]={
1.0f,0.5f,0.3f,1.0f
};     // 定义漫反射光的颜色
//GLfloat light_specular0[]={
0.5f,0.5f,0.5f,1.0f
};    // 定义镜面反射光的颜色
//GLfloat light_direction0[]={
0.0f,0.0f,-1.0f
};       // 设置光源的方向

//GLfloat light_position1[]={
0.0f,0.0f,100.0f,1.0f
};
//GLfloat light_ambient1[]={
0.3f,1.0f,0.2f,1.0f
};
//GLfloat light_diffuse1[]={
0.5f,1.0f,0.3f,1.0f
};
//GLfloat light_specular1[]={
0.5f,0.5f,0.5f,1.0f
};
//GLfloat light_direction1[]={
0.0f,0.0f,-1.0f
};

//GLfloat light_position2[]={
0.0f,0.0f,100.0f,1.0f
};
//GLfloat light_ambient2[]={
0.0f,0.0f,1.0f,1.0f
};
//GLfloat light_diffuse2[]={
0.2f,0.4f,1.0f,1.0f
};
//GLfloat light_specular2[]={
0.5f,0.5f,0.5f,1.0f
};
//GLfloat light_direction2[]={
0.0f,0.0f,-1.0f
};

//void Initial(void)
//{

//                glClearColor(0.5f, 0.5f, 1.0f, 1.0f);
//                glColor3f(0.2f, 0.2f, 0.2f);
//                obj = gluNewQuadric( );
//                gluQuadricDrawStyle(obj, GLU_LINE);  //以线框方式绘制二次曲面对象
//
}
/**********************************************************************************************************/
//  初始化函数
//void Init()
//{

//  int i,j;
//  for(i=0;i<Num;++i)
//  {
tn[i]=NULL;rn[i]=NULL;
}
//  for(j=0;j<MAX;++j)
//          sn[j]=NULL;
//  up.x = -5;
//  up.y = 5;
//  up.z = -5;
//  cam.x =220;
//  cam.y =220;
//  cam.z =220;
//        // 设置光源属性
//    glLightModelfv(GL_LIGHT_MODEL_AMBIENT,global_ambient);      // 创建环境光
//        glLightfv(GL_LIGHT0,GL_POSITION,light_position0);    // 创建光源位置
//        glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient0);      // 创建环境光
//        glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse0);      // 创建漫反射光
//        glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular0);    // 创建镜面反射光

//        glLightfv(GL_LIGHT1,GL_POSITION,light_position1);
//        glLightfv(GL_LIGHT1,GL_AMBIENT,light_ambient1);
//        glLightfv(GL_LIGHT1,GL_DIFFUSE,light_diffuse1);
//        glLightfv(GL_LIGHT1,GL_SPECULAR,light_specular1);

//        glLightfv(GL_LIGHT2,GL_POSITION,light_position2);
//        glLightfv(GL_LIGHT2,GL_AMBIENT,light_ambient2);
//        glLightfv(GL_LIGHT2,GL_DIFFUSE,light_diffuse2);
//        glLightfv(GL_LIGHT2,GL_SPECULAR,light_specular2);

//  glClearColor(0.0, 0.0, 0.5, 0.0);
//  glBlendFunc(GL_SRC_ALPHA, GL_ONE);
//  glEnable(GL_BLEND);
//  glEnable(GL_TEXTURE_2D);

//
}
/**********************************************************************************************************/
// 在屏幕上绘制字符串
//void draw_string(void *font, const char* string)
//{

//  while(*string)
//    glutStrokeCharacter(font, *string++);
//
}

//static float gettime(void)
//{

//  clock_t time_new, time_raz;

//  time_new=clock();
//  time_raz=time_new-last_time;
//  last_time=time_new;
//   return(time_raz/(float)CLOCKS_PER_SEC);
//
}
/**********************************************************************************************************/
// 装入纹理
//void LoadTexture()
//{

//  GLint iWidth, iHeight,iComponents;
//  GLenum eFormat;
//  GLubyte *tga;    // 粒子的纹理
//  int i;
//  glGenTextures(COUNT,texture);
//   for(i=0;i<COUNT;i++)
//   {

//       glBindTexture(GL_TEXTURE_2D, texture[i]);
//     tga= gltLoadTGA(hn[i],&iWidth,&iHeight,&iComponents,&eFormat);
//     if (!tga)
//         {

//        printf("Sorry, can't read texture file...");
//        exit(0);
//         
}
//       gluBuild2DMipmaps(GL_TEXTURE_2D, iComponents, iWidth, iHeight, eFormat, GL_UNSIGNED_BYTE, tga);
//       glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
//       glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
//     if (i == 0)
//                 glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
//     if (i== 1)
//          {

//         // 设置地面的重复纹理参数
//       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
//       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
//          
}

//  
}

//
}

//void shutdownRC(void)
//{

//        glDeleteTextures(COUNT,texture);
//
}

/**********************************************************************************************************/

//void Reshape(int width, int height)
//{

//  glViewport(0, 0, width, height);
//  glMatrixMode(GL_PROJECTION);
//  glLoadIdentity();
//  glFrustum(-0.5, 0.5, -0.5, 0.5, 1, 1000);
//  glMatrixMode(GL_MODELVIEW);

//  WindW = width;
//  WindH = height;
//
}
/**********************************************************************************************************/
//求矢量差积 C = A x B
//void vect_mult(struct point *A, struct point *B, struct point *C)
//{

//  /* Vector multiply */
//  C->x = A->y*B->z - A->z*B->y;
//  C->y = A->z*B->x - A->x*B->z;
//  C->z = A->x*B->y - A->y*B->x;
//
}

//  矢量单位化
//void normalize(struct point *V)
//{

//  float d;

//  // 矢量长度
//  d = sqrt(V->x*V->x + V->y*V->y + V->z*V->z);

//  // 单位化
//  V->x /= d;
//  V->y /= d;
//  V->z /= d;
//
}
/**********************************************************************************************************/
//第一个喷泉粒子系统//
//添加新的粒子
//void AddParticles1()
//{

//  struct particle *temp;
//  int  j;
//  for (j=0; j<Num; j++)

//    {

//      temp = (struct particle *)malloc(sizeof(struct particle));
//      if (tn[j]) tn[j]->prev = temp;
//      temp->next = tn[j];
//      tn[j] = temp;

//      temp->lifetime= -9.8;
//      temp->v = (float)(rand() % 400000)/200000+1; // 速度
//      temp->d = (float)(rand() % 400)/100-2;     // 方向角度
//      // 开始运动的坐标
//      temp->x = 0.0;
//      temp->y = 0.0;
//      temp->z = 0.0;
//      temp->xd = cos((temp->d*3.14159)/180)*temp->v/8;
//      temp->zd = sin((temp->d*3.14159)/180)*temp->v;
//      temp->type = 0; // 粒子的状态是运动的
//      temp->a = 1; // 粒子的a初始值是1
//    
}
//
}

//  移动粒子
//void MoveParticles1()
//{

//  struct particle *temp;
//  int j;

//  for (j=0; j<Num; j++)
//  {

//    temp = tn[j]; // 选择喷泉
//    while (temp)
//    {

//      if (temp->type == 0) // 如果粒子是运动的
//      {

//        temp->x += temp->xd;
//        temp->z += temp->zd;
//        temp->y = -(9.8*(temp->lifetime*temp->lifetime/4))/2+120.5; // 计算高度
//        temp->lifetime+= 0.08; // 寿命递增
//        if (temp->y <0)temp->type = 1; // 如果粒子落到地上,则粒子淡化

//      
}
//      else // 粒子落到地上
//      {

//        temp->y = -(9.8*(temp->lifetime*temp->lifetime/4))/2+120.5;
//        temp->a -= 0.5; // 粒子淡化
//      
}
//      temp = temp->next; //进行下一个粒子的计算
//    
}
//  
}
//
}

//  删除粒子
//void DeleteParticles1()
//{

//  struct particle *temp, *temp1;
//  int j;

//  for (j=0; j<Num; j++)
//  {

//    temp = tn[j];
//    while (temp)
//    {

//      if ((temp->type == 1) && (temp->a <= 0)) // 粒子死亡
//      {

//        // 删除粒子
//        temp1 = temp->prev;
//        temp->prev->next = temp->next;
//        if (temp->next) temp->next->prev = temp1;
//        free(temp);
//        temp = temp1;
//      
}
//      temp = temp->next;
//    
}
//  
}
//
}
//绘制喷泉
//void Fountain1()
//{

//  int i;
//  struct particle *temp;
//  struct point vectr, vectl;
//  float angle, rx, rz;

//  glBindTexture(GL_TEXTURE_2D, texture[0]);

//  AddParticles1();
//  MoveParticles1();
//  DeleteParticles1();

//  glPushMatrix();
//  for (i=0; i<Num; i++)
//  {

//    glBegin(GL_QUADS);
//    temp = tn[i];
//    while (temp)
//    {

//      // 旋转喷泉
//      angle = ((i*360/Num+a)*PI)/180;
//      rx = temp->x*cos(angle)-temp->z*sin(angle);
//      rz = temp->x*sin(angle)+temp->z*cos(angle);
//      // 计算方向矢量A
//      vectr.x = rx ;
//      vectr.y = temp->y ;
//      vectr.z = rz ;
//      vect_mult(&vectr, &up, &vectl);
//      normalize(&vectl);
//      vectl.x *= 1;
//      vectl.y *= 1;
//      vectl.z *=1;
//      glColor4f(0.5
...
...
(文件超长,未完全显示,请下载后阅读剩余部分)
			
...
展开> <收缩

下载源码到电脑,阅读使用更方便

1 积分

快速下载
还剩0行未阅读,继续阅读
云测速

源码文件列表

温馨提示: 点击源码文件名可预览文件内容哦 ^_^
...
名称 大小 修改日期
11.pro581.00 B17-04-14|10:34
11.pro.user20.44 kB18-04-14|14:23
02app2.jpg74.27 kB20-12-13|22:08
044w1.bmp2.34 MB20-12-13|22:06
044w2.bmp117.24 kB20-12-13|22:08
05le2.jpg208.74 kB20-12-13|22:08
apple.3DS29.46 kB20-12-13|22:08
apple.jpg42.50 kB20-12-13|22:08
background.tga192.04 kB29-03-11|21:29
bl.jpg60.20 kB20-12-13|22:08
bl20120807.jpg509.63 kB20-12-13|22:08
bl20120808.jpg288.16 kB20-12-13|22:08
bolo.3DS122.90 kB20-12-13|22:08
bl.jpg60.20 kB20-12-13|22:08
bl20120807.jpg509.63 kB20-12-13|22:08
bl20120808.jpg288.16 kB20-12-13|22:08
bolo.3DS122.90 kB20-12-13|22:08
b菠萝.max1.16 MB20-12-13|22:09
left_bolo.3DS15.86 kB20-12-13|22:08
MAXFILES.TXT169.00 B20-12-13|22:08
right_bolo.3DS112.62 kB20-12-13|22:08
b菠萝.max1.16 MB20-12-13|22:08
FACE.3DS25.21 kB20-12-13|22:08
FACE.BMP96.73 kB20-12-13|22:08
halflemo.jpg223.82 kB20-12-13|22:08
helfapple.jpg25.74 kB20-12-13|22:08
left_bolo.3DS15.86 kB20-12-13|22:08
left_half_lemon.3DS83.98 kB20-12-13|22:08
left_half_melo.3DS16.50 kB20-12-13|22:08
left_half_melo.max280.00 kB20-12-13|22:08
MAXFILES.TXT169.00 B20-12-13|22:08
melo.3DS25.21 kB20-12-13|22:08
nimeng.3DS169.28 kB20-12-13|22:08
nimeng.JPG534.01 kB20-12-13|22:08
park.3ds970.81 kB13-04-14|11:06
right_bolo.3DS112.62 kB20-12-13|22:08
right_half_lemon.3DS83.98 kB20-12-13|22:08
right_half_melo.3DS16.37 kB20-12-13|22:08
XIGUA.BMP329.57 kB20-12-13|22:08
xigua.max196.00 kB20-12-13|22:08
hamigua.3DS108.64 kB20-12-13|22:08
hamigua.jpg107.20 kB20-12-13|22:08
hmg.jpg49.13 kB20-12-13|22:08
MAXFILES.TXT166.00 B20-12-13|22:08
____2.JPG3.84 MB20-12-13|22:09
哈密瓜.max1.04 MB20-12-13|22:09
3DS.cpp20.58 kB20-12-13|22:08
3DS.H4.00 kB20-12-13|22:08
admovie.jpg0.00 B25-03-11|16:51
background.tga768.39 kB16-04-14|20:54
11.exe903.92 kB18-04-14|14:55
3DS.o104.83 kB15-04-14|17:20
FruitObject.o138.40 kB17-04-14|09:16
ParkModel.o138.33 kB17-04-14|10:59
penquan.o141.24 kB18-04-14|14:55
FruitObject.cpp4.28 kB20-12-13|22:08
FruitObject.h630.00 B20-12-13|22:08
glext.h295.63 kB09-02-04|02:42
gltools.h5.86 kB13-04-14|11:37
glut.h20.94 kB07-11-03|14:57
ground.TGA2.32 MB30-03-11|00:25
ground1.TGA192.04 kB08-04-11|00:44
ground11.TGA192.04 kB30-03-11|00:34
GROUND2.TGA192.02 kB01-03-11|15:56
loadtga.cpp3.83 kB13-04-14|11:45
main.cpp6.43 kB10-04-14|11:33
Makefile5.82 kB17-04-14|10:59
Makefile.Debug5.24 kB17-04-14|10:59
Makefile.Release5.30 kB17-04-14|10:59
openglsb.h716.00 B09-03-11|14:00
ParkModel.cpp4.26 kB17-04-14|10:37
ParkModel.h666.00 B17-04-14|10:37
PARTICLE.TGA3.02 kB01-03-11|15:55
penquan.cpp22.92 kB18-04-14|14:55
main.cpp23.60 kB10-04-14|19:22
text.pro306.00 B10-04-14|19:09
text.pro.user20.64 kB10-04-14|19:38
Makefile5.73 kB10-04-14|19:10
Makefile.Debug4.65 kB10-04-14|19:10
Makefile.Release4.69 kB10-04-14|19:10
wglext.h26.46 kB09-02-04|01:12
雨中漫步.mp31.60 MB16-07-08|15:42
loadtga.o3.49 kB11-04-14|14:21
main.o105.20 kB10-04-14|11:27
penquan.o142.16 kB11-04-14|16:09
Makefile5.68 kB11-04-14|16:52
Makefile.Debug4.88 kB11-04-14|16:52
Makefile.Release4.92 kB11-04-14|16:52
b菠萝0.00 B19-04-14|09:46
哈密瓜0.00 B19-04-14|09:46
debug0.00 B11-04-14|16:12
release0.00 B10-04-14|19:10
3dmodel0.00 B19-04-14|09:46
debug0.00 B19-04-14|09:46
release0.00 B12-04-14|00:44
text0.00 B19-04-14|09:46
text-build-desktop-Qt_4_7_3__4_7_3____0.00 B19-04-14|09:46
debug0.00 B19-04-14|09:46
release0.00 B10-04-14|10:39
110.00 B19-04-14|09:46
11-build-desktop-Qt_4_7_3__4_7_3____0.00 B19-04-14|09:46
penquan0.00 B19-04-14|09:46
云测速

main.cpp (12.85 MB)

需要 1 积分
您持有 积分

CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了 了解更多

您的积分不足

支付宝优惠套餐快速获取 30 积分

订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。

更多付款方式:网银PayPal

上传代码,免费获取

您本次下载所消耗的积分将转交上传作者。

同一源码,30天内重复下载,只扣除一次积分。

登录 CodeForge

还没有CodeForge账号? 立即注册
关注微博
联系客服

Switch to the English version?

Yes
CodeForge 英文版
No
CodeForge 中文版

完善个人资料,获价值¥30元积分奖励!

^_^"呃 ...

Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧
好的