【課程設(shè)計】基于openGL的粒子系統(tǒng)-模擬火焰_第1頁
【課程設(shè)計】基于openGL的粒子系統(tǒng)-模擬火焰_第2頁
【課程設(shè)計】基于openGL的粒子系統(tǒng)-模擬火焰_第3頁
【課程設(shè)計】基于openGL的粒子系統(tǒng)-模擬火焰_第4頁
【課程設(shè)計】基于openGL的粒子系統(tǒng)-模擬火焰_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰課程設(shè)計報告題目基于openGL的粒子系統(tǒng)——模擬火焰系(部)專業(yè)班級學(xué)生姓名學(xué)號起止時間:指導(dǎo)教師(簽字)系主任(簽字)提交時間:一、設(shè)計任務(wù)及要求:設(shè)計任務(wù):要求:此次課程設(shè)計的課題為通過編程,實現(xiàn)火焰的繪制。實現(xiàn)交互控制火焰顏色、火焰燃燒方向、貼圖形狀,通過實驗得到火焰貼圖大小與火焰效果的關(guān)系,并給出代碼和結(jié)果截圖。指導(dǎo)教師簽名:年月日二、指導(dǎo)教師評語:【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第1頁。年月日三、成績計算機圖形學(xué)課程設(shè)計報告1.課程設(shè)計目的本學(xué)期系統(tǒng)學(xué)習(xí)了《計算機圖形學(xué)》這門專業(yè)課,在學(xué)期期末按課程要求進行實驗。粒子系統(tǒng)由Reeves于1983年首次提出,此后越來越受到重視,它的主要優(yōu)點是可以利用非常簡單的體素來構(gòu)造復(fù)雜的物體,為自然現(xiàn)象(如火焰、雨、雪、樹林等)的造型提供了強有力的技術(shù)手段。該課程設(shè)計以培養(yǎng)我們算法設(shè)計與實現(xiàn)的能力為目標,通過實踐,使我們了解、掌握計算機圖形學(xué)的基本知識和關(guān)鍵技術(shù)、了解和熟悉計算機圖形學(xué)的方法、工具和環(huán)境,同時培養(yǎng)我們的思維能力和團隊合作能力。2.課程設(shè)計描述及要求粒子系統(tǒng)的基本思想是用許多形狀簡單且賦予生命的微小粒子作為基本元素來表示基本物體,側(cè)重于物體的總體形態(tài)和特征的動態(tài)變化。把物體定義為許多不規(guī)則、隨機分布的粒子,且每個粒子均有一定的生命周期。隨著時間的推移,舊的粒子不斷消失(死亡),新的粒子不斷加入(生長)。粒子的這種出生、成長、衰老、死亡的過程,能夠較好的反應(yīng)模糊物體的動態(tài)特征。一個粒子系統(tǒng)是不斷進化的,在生命周期的每一刻,都要完成以下四步:初始化粒子更新粒子刪除死粒子繪制粒子第一步產(chǎn)生5000個新粒子,他們的每個粒子都有生命周期為2;【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第2頁。第三步檢查粒子的生命期,若為零,則將粒子從系統(tǒng)中刪除;第四步顯示粒子系統(tǒng)中的粒子。要求:此次課程設(shè)計的課題為通過編程,實現(xiàn)火焰的繪制。實現(xiàn)交互控制火焰顏色、火焰燃燒方向、貼圖形狀,通過實驗得到火焰貼圖大小與火焰效果的關(guān)系,并給出代碼和結(jié)果截圖。3(系統(tǒng)開發(fā)環(huán)境開發(fā)工具:VC6.0操作系統(tǒng):MicrosoftWindows74、粒子系統(tǒng)(火焰)的算法原理4.1定義粒子的屬性宏定義粒子的最大數(shù)目5000,并定義結(jié)構(gòu)體來設(shè)置粒子屬性,代碼如下:#defineMAX_PARTICLES5000//粒子數(shù)的數(shù)目typedefstruct//創(chuàng)建結(jié)構(gòu)體{boolactive;//floatlife;//粒子生命周期floatfade;//消失的速度floatr;floatg;floatb;floatx;//坐標floaty;//坐標floatz;//坐標【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第3頁。f【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第3頁。floatyi;floatzi;floatxg;//X軸加速度floatyg;//Y軸加速度floatzg;//Z軸加速度}particles;particlesparticle[MAX_PARTICLES];//創(chuàng)建粒子數(shù)組4.2初始化粒子利用循環(huán)變量loop,loop小于等于最大粒子數(shù)目時,則初始化每一個粒子,代碼如下:for(loop=0;loop<MAX_PARTICLES;loop++){particle[loop].active=true;particle[loop].life=2.0f;//生命期particle[loop].fade=float(rand()%100)/1500.0f+0.002f;//消失速度(隨機)particle[loop].r=colors[loop*(4/MAX_PARTICLES)][0];particle[loop].g=colors[loop*(4/MAX_PARTICLES)][1];particle[loop].b=colors[loop*(4/MAX_PARTICLES)][2];particle[loop].xg=0.0f;particle[loop].yg=0.3f;particle[loop].zg=0.0f;}【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第4頁。(1)定義消失變量,使粒子的生命期遞減一個隨機的生命步,代碼如下:particle[loop].fade=float(rand()%100)/1500.0f+0.002f;(2)粒子的顏色透明度隨著生命期的減少而降低,最終消失,代碼如下:glColor4f(particle[loop].r,particle[loop].g,particle[loop].b,particle[loop].life);4.4繪制及更新粒子(1)設(shè)置粒子的運動狀態(tài),代碼如下:particle[loop].x+=particle[loop].xi/(slowdown*1050);//X的坐標隨X軸速度變化particle[loop].y+=particle[loop].yi/(slowdown*1050);particle[loop].z+=particle[loop].zi/(slowdown*1050);particle[loop].xi+=particle[loop].xg;//X軸的速度隨X軸的加速度變化particle[loop].yi+=particle[loop].yg;particle[loop].zi+=particle[loop].zg;particle[loop].life-=particle[loop].fade;//周期衰減(2)當粒子生命期衰減為0時,更新粒子,代碼如下:if(particle[loop].life<0.0f){particle[loop].life=2.0f;particle[loop].fade=float(rand()%100)/1500.0f+0.002f;particle[loop].x=0.0f;particle[loop].y=0.0f;particle[loop].z=0.0f;【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第5頁。particle[loop].yi=float((rand()%60)-30.0f);particle[loop].zi=float((rand()%60)-30.0f);particle[loop].r=colors[col][0];//渲染particle[loop].g=colors[col][1];//渲染particle[loop].b=colors[col][2];//渲染particle[loop].xg=xg1;particle[loop].yg=yg1;particle[loop].zg=0.0f;}5、實現(xiàn)交互的原理5.1鍵盤和鼠標主菜單控制火焰顏色(1)定義顏色數(shù)組及設(shè)置火焰顏色:staticGLfloatcolors[8][3]=//顏色數(shù)組{{0.0f,0.0f,0.0f},{0.5f,0.75f,1.0f},{1.0f,0.75f,0.5f},{0.75f,1.0f,0.5f},{1.0f,0.5f,0.75f},{0.35f,0.8f,0.5f},{0.55f,0.25f,0.75f},{0.5f,0.5f,0.75f},};particle[loop].r=colors[col][0];//渲染particle[loop].g=colors[col][1];//渲染particle[loop].b=colors[col][2];//渲染(2)用鍵盤的“q”“w”“a”“s”“z”鍵和主菜單選擇數(shù)組中相應(yīng)行的RGB值來改變火焰顏【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第6頁。voidkeyboard(unsignedcharkey,intx,inty)//定義鍵盤功能{switch(key){case'q':{col=3;xg1+=0.05;glutPostRedisplay();//重繪函數(shù)}break;case'w':{col=4;yg1+=0.05;glutPostRedisplay();}break;case'a':{col=5;xg1-=0.05;glutPostRedisplay();}break;【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第7頁。{col=6;yg1-=0.05;glutPostRedisplay();}break;case'z':{col=7;glutPostRedisplay();}break;default:break;}}voidMainMenuHandler(intoption)//定義主菜單功能{switch(option){case0:{exit(0);LoadGLTextures();【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第8頁。case1:{col=1;}break;case2:{col=2;}break;default:break;}glutPostRedisplay();}voidMenuHandler()//主菜單{intmainMenu;mainMenu=glutCreateMenu(MainMenuHandler);glutSetMenu(mainMenu);glutAddMenuEntry("Exit",0);glutAddMenuEntry("brightblue",1);glutAddMenuEntry("croci",2);glutAttachMenu(GLUT_RIGHT_BUTTON);}【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第9頁。(代碼可參照鍵盤控制火焰顏色)5.3選擇貼圖紋理用鍵盤輸入選擇紋理所對應(yīng)的編號,代碼可參照附錄源代碼中intLoadGLTextures()函數(shù)。6、程序運行結(jié)果圖6.1圖6.2【課程設(shè)計】基于openGL的粒子系統(tǒng)【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第10頁。圖6.3.1圖6.3.2【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第11頁?!菊n程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第12頁?!菊n程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第12頁?!菊n程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第13頁?!菊n程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第14頁?!菊n程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第14頁?!菊n程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第15頁。【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第15頁。圖6.6.1圖6.6.2通過改變粒子X與Y軸的初速度和加速度,來改變火焰的燃燒方向,如圖6.6.1與圖6.6.27、總結(jié)在完成基于粒子系統(tǒng)的火焰模擬實驗的過程中,我們小組各成員通過分工與合作多種形式,查閱和檢索相關(guān)文獻及資料,最終通過學(xué)習(xí)基本原理、討論實驗方案、研究重點難點及驗證預(yù)期結(jié)果等過程完成了本次實驗。我們實驗的特色在于使用鍵盤和鼠標控制火焰顏色的交互變化,以及使用鍵盤控制火焰加速度的變化。在本次實驗中我們學(xué)習(xí)并掌握了相關(guān)知識,同時也深刻的體會到了合作的重要性。今后,我們一定會更加認真學(xué)習(xí)。8、參考資料:《計算機圖形學(xué)基礎(chǔ)(第2版)》陸楓何云峰編著太原工業(yè)學(xué)院精品課程9、附錄:源程序代碼清單【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第16頁。#include<windows.h>#include<stdio.h>#include<GL/gl.h>#include<GL/glu.h>#include<Gl/glut.h>#include<GL/glaux.h>#include"math.h"#defineMAX_PARTICLES5000//粒子數(shù)的數(shù)目floatslowdown=3.0f;floatxspeed;//X軸速度floatyspeed;//Y軸速度floatzoom=-40.0f;inta;floatxg1;floatyg1=0.2f;GLuintloop;//循環(huán)變量GLuintcol=5;//初始顏色GLuinttexture[1];//創(chuàng)建數(shù)組存儲紋理typedefstruct//創(chuàng)建結(jié)構(gòu)體{boolactive;//floatlife;//粒子生命周期floatfade;//消失的速度floatr;floatg;floatb;floatx;//坐標floaty;//坐標floatz;//坐標floatxi;floatyi;【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第17頁。floatxg;//X軸加速度floatyg;//Y軸加速度floatzg;//Z軸加速度}particles;particlesparticle[MAX_PARTICLES];//創(chuàng)建粒子數(shù)組staticGLfloatcolors[8][3]=//顏色數(shù)組{{0.0f,0.0f,0.0f},{0.5f,0.75f,1.0f},{1.0f,0.75f,0.5f},{0.75f,1.0f,0.5f},{1.0f,0.5f,0.75f},{0.35f,0.8f,0.5f},{0.55f,0.25f,0.75f},{0.5f,0.5f,0.75f},};AUX_RGBImageRec*LoadBMP(char*Filename)//載入位圖圖像{FILE*File=NULL;if(!Filename){returnNULL;}File=fopen(Filename,"r");if(File){fclose(File);【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第18頁。}returnNULL;}intLoadGLTextures()//載入位圖(調(diào)用上面的代碼)并轉(zhuǎn)換成紋理{intStatus=FALSE;AUX_RGBImageRec*TextureImage[1];memset(TextureImage,0,sizeof(void*)*1);printf("q鍵xg1+=0.05;(X軸加速度)熒光黃色\n");printf("w鍵yg1+=0.05;(X軸加速度)玫瑰粉\n");printf("a鍵xg1-=0.05;(X軸加速度)熒光綠\n");printf("s鍵yg1-=0.05;(X軸加速度)亮紫\n");printf("z鍵yg1-=0.05;(X軸加速度)藕荷色\n");printf("\n\n");printf("***Choosethenumberoftheshape***\n");//選擇紋理printf("---1.Circle\t2.Pentagram\t3.Triangle---\n\n");printf("---4.Flame\t5.four-pointedStar\t6.Hexagon---\n\n");scanf("%d",&a);if(a>6){printf("****Tip:Error!!!Pleasere-enterafterexit!!****\n\n");exit(0);}【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第19頁。{case1:{if(TextureImage[0]=LoadBMP("Circle.bmp")){Status=TRUE;glGenTextures(1,&texture[0]);glBindTexture(GL_TEXTURE_2D,texture[0]);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]->sizeX,TextureImage[0]->sizeY,0,GL_RGB,GL_UNSIGNED_BYTE,TextureImage[0]->data);}}break;case2:{if(TextureImage[0]=LoadBMP("Pentagram.bmp")){Status=TRUE;glGenTextures(1,&texture[0]);glBindTexture(GL_TEXTURE_2D,texture[0]);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第20頁。glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]->sizeX,TextureImage[0]->sizeY,0,GL_RGB,GL_UNSIGNED_BYTE,TextureImage[0]->data);}}break;case3:{if(TextureImage[0]=LoadBMP("Triangle.bmp")){Status=TRUE;glGenTextures(1,&texture[0]);glBindTexture(GL_TEXTURE_2D,texture[0]);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]->sizeX,TextureImage[0]->sizeY,0,GL_RGB,GL_UNSIGNED_BYTE,TextureImage[0]->data);}}break;case4:{if(TextureImage[0]=LoadBMP("Flame.bmp")){【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第21頁。glGenTextures(1,&texture[0]);glBindTexture(GL_TEXTURE_2D,texture[0]);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]->sizeX,TextureImage[0]->sizeY,0,GL_RGB,GL_UNSIGNED_BYTE,TextureImage[0]->data);}}break;case5:{if(TextureImage[0]=LoadBMP("four-pointedStar.bmp")){Status=TRUE;glGenTextures(1,&texture[0]);glBindTexture(GL_TEXTURE_2D,texture[0]);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]->sizeX,TextureImage[0]->sizeY,0,GL_RGB,GL_UNSIGNED_BYTE,TextureImage[0]->data);}}break;【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第22頁。{if(TextureImage[0]=LoadBMP("Hexagon.bmp")){Status=TRUE;glGenTextures(1,&texture[0]);glBindTexture(GL_TEXTURE_2D,texture[0]);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]->sizeX,TextureImage[0]->sizeY,0,GL_RGB,GL_UNSIGNED_BYTE,TextureImage[0]->data);}}break;}if(TextureImage[0]){if(TextureImage[0]->data){free(TextureImage[0]->data);}free(TextureImage[0]);}【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第23頁。voidReSizeGLScene(GLsizeiwidth,GLsizeiheight)//調(diào)整并初始化GL窗口{glViewport(0,0,width,height);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,200.0f);}voidInitGL(GLvoid)//OpenGL的設(shè)置{glClearColor(0.0f,0.0f,0.0f,0.0f);glShadeModel(GL_SMOOTH);glClearDepth(1.0f);glDisable(GL_DEPTH_TEST);glEnable(GL_BLEND);glBlendFunc(GL_SRC_ALPHA,GL_ONE);glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);glHint(GL_POINT_SMOOTH_HINT,GL_NICEST);glEnable(GL_TEXTURE_2D);LoadGLTextures();glBindTexture(GL_TEXTURE_2D,texture[0]);for(loop=0;loop<MAX_PARTICLES;loop++){particle[loop].active=true;particle[loop].life=2.0f;【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第24頁?!菊n程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第24頁。particle[loop].r=colors[loop*(4/MAX_PARTICLES)][0];particle[loop].g=colors[loop*(4/MAX_PARTICLES)][1];particle[loop].b=colors[loop*(4/MAX_PARTICLES)][2];particle[loop].xg=0.0f;particle[loop].yg=0.3f;particle[loop].zg=0.0f;}}voidDrawGLScene(GLvoid)//繪制{glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(0,0,5,0,1.5,0,0,1,0);for(loop=0;loop<MAX_PARTICLES;loop++){if(particle[loop].active){floatx=particle[loop].x;floaty=particle[loop].y;【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第25頁。glColor4f(particle[loop].r,particle[loop].g,particle[loop].b,particle[loop].life);glBegin(GL_TRIANGLE_STRIP);glTexCoord2d(1,1);glVertex3f(x+0.5f,y+0.5f,z);glTexCoord2d(0,1);glVertex3f(x-0.5f,y+0.5f,z);glTexCoord2d(1,0);glVertex3f(x+0.5f,y-0.5f,z);glTexCoord2d(0,0);glVertex3f(x-0.5f,y-0.5f,z);glEnd();particle[loop].x+=particle[loop].xi/(slowdown*1050);//X的坐標隨X軸速度變化particle[loop].y+=particle[loop].yi/(slowdown*1050);particle[loop].z+=particle[loop].zi/(slowdown*1050);particle[loop].xi+=particle[loop].xg;//X軸的速度隨X軸的加速度變化particle[loop].yi+=particle[loop].yg;particle[loop].zi+=particle[loop].zg;particle[loop].life-=particle[loop].fade;//周期衰減if(particle[loop].life<0.0f){particle[loop].life=2.0f;particle[loop].fade=float(rand()%100)/1500.0f+0.002f;particle[loop].x=0.0f;【課程設(shè)計】基于openGL的粒子系統(tǒng)——【課程設(shè)計】基于openGL的粒子系統(tǒng)——模擬火焰全文共31頁,當前為第26頁。particle[loop].z=0.0f;30.0f);particle[loop].xi=float((rand()%60)-particle[loop].yi=float((rand()%60)-30.0f);particle[loop].zi=float((rand()%60)-30.0f);particle[loop].r=colors[col][0];//渲染particle[loop].g=colors[col][1];//渲染particle[loop].b=colors[col][2];//渲染particle[loop].xg=xg1;particle[loop].yg=yg1;particle[loop].zg=0.0f;}}}glutSwapBuffers();}voidMainMenuHandler(intoption)/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論