可以實現各種噴射狀的運動狀態,按上下左右鍵分別移動粒子,按y鍵切換顏色,按7、8、9、0切換不同的紋理,按1、2改變粒子速度、按3、4改變粒子大小
particlesys.h
// particlesys.h: inte***ce for the cparticlesys class.
////
#if !defined(afx_particlesys_h__f9db0bb6_e352_488d_a578_09d57eee6f42__included_)
#define afx_particlesys_h__f9db0bb6_e352_488d_a578_09d57eee6f42__included_
#if _msc_ver > 1000
#pragma once
#endif // _msc_ver > 1000
#define
max_particles 1000 // 定義最大的粒子數
typedef struct
// 建立粒子資料結構
particles;
class cparticlesys
;#endif // !defined(afx_particlesys_h__f9db0bb6_e352_488d_a578_09d57eee6f42__included_)
particles.cpp
// particlesys.cpp: implementation of the cparticlesys class.
////
#include "stdafx.h"
#include "mysdopengl.h"
#include "particlesys.h"
#include
#ifdef _debug
#undef this_file
static char this_file=__file__;
#define new debug_new
#endif
//// construction/destruction
//static glfloat colors[12][3]=
// 彩虹顏色
,,,,
,,,,
,,,};
cparticlesys::cparticlesys()
cparticlesys::~cparticlesys()
void cparticlesys::setxspeed(float fxspeed)
void cparticlesys::setyspeed(float fyspeed)
void cparticlesys::setslow(float fslow)
void cparticlesys::setzoom(float fzoom)
void cparticlesys::initparticles()
}int cparticlesys::drawparticles()
else
for(m_loop = 0; m_loop < max_particles; m_loop++)
if(m_byg && particle[m_loop].yg < 1.5f)
particle[m_loop].yg += 0.01;
if(m_bygj && particle[m_loop].yg > -1.5f)
particle[m_loop].yg -= 0.01;
if(m_bxg && particle[m_loop].xg < 1.5f)
particle[m_loop].xg += 0.01;
if(m_bxgj && particle[m_loop].xg > -1.5f)
particle[m_loop].xg -= 0.01;
if(m_borg)}}
changecolor();
return 1;
}void cparticlesys::changecolor()
}void cparticlesys::changexspeed(float foff)
void cparticlesys::changeyspeed(float foff)
void cparticlesys::resetpos()
void cparticlesys::changedelay(float foff)
void cparticlesys::changeslow(float foff)
void cparticlesys::changezoom(float foff)
void cparticlesys::settexlist(gluint itexlist)
應用:1、粒子和紋理的建立
m_pparticle = new cparticlesys();
m_pparticle->initparticles();
gentexlist("light02.rgb", 101);
gentexlist("smoke02.rgb", 102);
gentexlist("fire.rgb", 103);
gentexlist("waterexp.rgb", 104);
2、粒子繪製
m_pparticle->drawparticles();
3、粒子狀態改變
void cmysdopenglview::onkeydown(uint nchar, uint nrepcnt, uint nflags)
cview::onkeydown(nchar, nrepcnt, nflags);
}4、刪除粒子
if(m_pparticle != null)
第十九課 基於sklearn的SVM人臉識別
實驗為基於sklearn的svm人臉識別,使用 svm 演算法對戴眼鏡的人臉和不戴眼鏡的人臉進行分類,從而完成識別戴眼鏡的人臉的任務 實驗涉及的支援向量機引數計算原理,回顧第十八課 人臉影象資料集 olivetti py3.pkz,儲存在個人資源處,載入資料 from sklearn.dataset...
第十九課 調整色階
調節的明暗程度,也就是色階的調整 色階 ctrl 表示一幅影象的高光 暗調 中間調,可以調節最暗或最亮的色階,最左端的滑塊代表最暗的值,中間代表中間色調,最右邊的滑塊代表最亮的值。在所有的對話方塊當中,按住alt鍵不放,單擊 取消 則恢復到預設狀態。自動色階 trl shift 自動調整影象明暗程度...
第十九課 物件的構造(下)
學習狄泰軟體學院唐老師c 課程心得,文章內容來自於唐老師課件 一 兩個特殊的建構函式 include class test int getj test const test t main 中test t2 t1時,如果類中只有test const test t 則報錯,需要加上 test main ...