亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? freecamera.cpp

?? 涉及windows游戲編程中的一些源碼
?? CPP
字號:
/**********************************************************   模塊名稱:       Camera.cpp   目的:        提供攝影機的操作,俯仰,平移,前進,后退,傾斜,旋轉等;   作者:        潘李亮 HeartBlue		       XpertSoft HeartBlue 2002/9/26			   Allright reserved			   版權所有 

//全是數學運算…^_^
**********************************************************/#include "CommGLHeader.h"#include "FreeCamera.h"void CFreeCamera::SetUpDir(float x,float y,float z){   MVECTOR v={x,y,z};   Math.Normalize(v);
   m_info.up.x  = v.x;    m_info.up.y  = v.y;   m_info.up.z  = v.z;
}void CFreeCamera::SetCameraPos(float x,float y,float z){	m_info.pos.x =x;
	m_info.pos.y =y;
	m_info.pos.z =z;}void CFreeCamera::SetTarget(float x,float y,float z){	m_info.target.x = x; 
	m_info.target.y = y;	m_info.target.z = z;}//使用攝影機void CFreeCamera::Look(){//	MVECTOR d = {   m_info.target.x - m_info.pos.x,  
//					m_info.target.y - m_info.pos.y,  
//					m_info.target.z - m_info.pos.z,  
//					m_info.target.w - m_info.pos.w
//	};
//	float len = Math.LenVector(d);
//	float dx = m_zoom_info.fdist * d.x /len;
//	float dy = m_zoom_info.fdist * d.y /len;
//	float dz = m_zoom_info.fdist * d.z /len;
	gluLookAt(
		       m_info.pos.x,    m_info.pos.y,     m_info.pos.z,          //觀察者的位置
		       m_info.target.x, m_info.target.y,  m_info.target.z, //視點的中心
			   m_info.up.x,     m_info.up.y,      m_info.up.z               //上方的位置
			 );}//俯仰角度void CFreeCamera::Raise(float theta){	MVECTOR vdir= {m_info.target.x - m_info.pos.x, m_info.target.y-m_info.pos.y,m_info.target.z-m_info.pos.z};	MVECTOR vn;	
	float m=Math.LenVector(vdir);	Math.Normalize(vdir);	//得到另外一條觀察平面的 坐標軸方向	Math.CrossNormal(vdir,m_info.up,vn);	    //向上位置先旋轉	Math.Rotate(vn,m_info.up,theta);    //旋轉視線方向    Math.Rotate(vn,vdir,theta);
    m_info.target.x = m_info.pos.x + vdir.x*m;	m_info.target.y = m_info.pos.y + vdir.y*m; 	m_info.target.z = m_info.pos.z + vdir.z*m;     }//旋轉void CFreeCamera::Turn(float theta){   	MVECTOR vdir = {m_info.target.x-m_info.pos.x,m_info.target.y-m_info.pos.y,m_info.target.z-m_info.pos.z};	float m=Math.LenVector(vdir);	Math.Normalize(vdir);	Math.Rotate(m_info.up,vdir,theta);	m_info.target.x = m_info.pos.x+vdir.x*m;	m_info.target.y = m_info.pos.y+vdir.y*m; 	m_info.target.z = m_info.pos.z+vdir.z*m; 

	m_info.vdir = m_info.target - m_info.pos;
	m_info.vup  = m_info.up ;}//繞行void CFreeCamera::Circle(float theta){   	MVECTOR vdir = {m_info.pos.x-m_info.target.x,m_info.pos.y-m_info.target.y,m_info.pos.z-m_info.target.z};	float m = Math.LenVector(vdir);	Math.Normalize(vdir);	Math.Rotate(m_info.up,vdir,theta);	m_info.pos.x = m_info.target.x+vdir.x * m;	m_info.pos.y = m_info.target.y+vdir.y * m; 	m_info.pos.z = m_info.target.z+vdir.z * m; 

	m_info.vdir = m_info.target - m_info.pos;
	m_info.vup  = m_info.up ;}//傾斜void CFreeCamera::Lean(float theta){	MVECTOR  vdir={m_info.target.x-m_info.pos.x,m_info.target.y-m_info.pos.y,m_info.target.z-m_info.pos.z};	float m=Math.LenVector(vdir);	Math.Normalize(vdir);	Math.Rotate(vdir,m_info.up,theta); 

	m_info.vdir = m_info.target - m_info.pos;
	m_info.vup  = m_info.up ;}//向前向后運動void CFreeCamera::Forward(float dist){    MVECTOR  vdir = {m_info.target.x-m_info.pos.x,m_info.target.y-m_info.pos.y,m_info.target.z-m_info.pos.z};	float m  =  Math.LenVector(vdir);    float dx = dist*vdir.x/m;	float dy = dist*vdir.y/m;	float dz = dist*vdir.z/m;    m_info.target.x += dx;	m_info.target.y += dy;	m_info.target.z += dz;	m_info.pos.x += dx;	m_info.pos.y += dy;	m_info.pos.z += dz;	}//左右平移void CFreeCamera::Shift(float dist){	MVECTOR vdir={m_info.target.x-m_info.pos.x,m_info.target.y-m_info.pos.y,m_info.target.z-m_info.pos.z};	MVECTOR vx;	Math.Normalize(vdir);	Math.CrossNormal(vdir,m_info.up,vx);		float m=Math.LenVector(vx);    float dx=dist*vx.x/m;	float dy=dist*vx.y/m;	float dz=dist*vx.z/m;    m_info.target.x+=dx;	m_info.target.y+=dy;	m_info.target.z+=dz;	m_info.pos.x+=dx;	m_info.pos.y+=dy;	m_info.pos.z+=dz;}void CFreeCamera::Up(float dist){   float dx=dist*m_info.up.x;    float dy=dist*m_info.up.y;    float dz=dist*m_info.up.z;    m_info.target.x+=dx;    m_info.target.y+=dy;    m_info.target.z+=dz;    m_info.pos.x += dx;    m_info.pos.y += dy;    m_info.pos.z += dz;}
void CFreeCamera::ReLocate(float x,float y,float z){    MVECTOR vdir = {m_info.target.x-m_info.pos.x,m_info.target.y-m_info.pos.y,m_info.target.z-m_info.pos.z};    m_info.pos.x = x;	m_info.pos.y = y;	m_info.pos.z = z;	m_info.target.x=x+vdir.x; 	m_info.target.y=y+vdir.y; 	m_info.target.z=z+vdir.z; }
CFreeCamera::CFreeCamera()
{
	this->m_zoom_info.factor = 1;
	this->m_zoom_info.zoom_angle =0;
	this->m_info.vangle =0; 
     
	m_info.near_dist = 0.01;
	m_info.pos.z = m_info.pos.y =m_info.pos.x = 0;
	m_info.target.x = m_info.target.z =0;
	m_info.target.y = 10;

	m_info.up.x =m_info.up.y = 0;
	m_info.up.z = 1.0;
	
	m_info.vdir.x = m_info.vdir.z = 0;
	m_info.vdir.y = 1.0;
	
	m_info.vup.x = m_info.up.x ; 
	m_info.vup.y = m_info.up.y ;
	m_info.vup.z = m_info.up.z ;
}
void  CFreeCamera::ZoomedProject(float factor)
{
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
    gluPerspective(this->m_zoom_info.zoom_angle,factor,0.1,m_info.far_dist *ZOOM_LOD_F*(m_info.vangle/m_zoom_info.zoom_angle));
	glMatrixMode(GL_MODELVIEW);
//	glLoadIdentity();
}
void  CFreeCamera::Project(float factor)
{
	if(IsZoomed())
	  ZoomedProject(factor);
	else
	{
		glMatrixMode(GL_PROJECTION);
		glLoadIdentity();
		gluPerspective(this->m_info.vangle,factor,0.1,m_info.far_dist );
		glMatrixMode(GL_MODELVIEW);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
自拍偷拍国产精品| 亚洲韩国精品一区| 日韩欧美一区二区三区在线| 色素色在线综合| 91在线国内视频| 91久久国产最好的精华液| 91婷婷韩国欧美一区二区| 一本色道亚洲精品aⅴ| 日本乱人伦aⅴ精品| 欧美日韩国产色站一区二区三区| 欧美三级视频在线观看| 3d成人h动漫网站入口| 7878成人国产在线观看| 日韩欧美精品在线| 国产色产综合色产在线视频| 亚洲女厕所小便bbb| 一区二区三区四区视频精品免费| 亚洲午夜精品在线| 麻豆91在线播放| 国产一区福利在线| 99精品国产热久久91蜜凸| 99免费精品在线| 欧美日产在线观看| 国产亚洲福利社区一区| 亚洲乱码日产精品bd| 日韩精品一二三四| 成人午夜视频网站| 欧洲一区二区三区在线| 精品国产免费视频| 亚洲欧洲日韩综合一区二区| 日韩精品一级中文字幕精品视频免费观看 | 韩国av一区二区| 成人18精品视频| 欧美视频在线播放| 久久综合九色综合欧美98 | 欧洲av在线精品| 2023国产精品视频| 亚洲自拍偷拍九九九| 国产真实精品久久二三区| 在线观看欧美黄色| 中文字幕精品在线不卡| 日韩va欧美va亚洲va久久| 99视频国产精品| 精品久久一二三区| 亚洲精品免费电影| 精品亚洲国产成人av制服丝袜| 91在线视频播放| 久久免费午夜影院| 日本vs亚洲vs韩国一区三区二区| 99久久婷婷国产综合精品电影 | 亚洲国产高清在线观看视频| 日本不卡中文字幕| 91福利小视频| 国产精品国产三级国产有无不卡 | 成人黄色a**站在线观看| 精品视频免费看| 国产精品久久久久久久久搜平片| 久久电影网站中文字幕| 91国偷自产一区二区开放时间 | 国产精品888| 欧美精品第1页| 亚洲狠狠爱一区二区三区| av不卡在线观看| 亚洲国产高清aⅴ视频| 国产在线播放一区三区四| 日韩视频在线永久播放| 日韩国产在线观看一区| 欧美图区在线视频| 一区二区三区在线观看网站| 色噜噜狠狠色综合中国| 国产精品亲子乱子伦xxxx裸| 成人做爰69片免费看网站| 久久久久久9999| 狠狠色综合播放一区二区| 欧美成人免费网站| 美脚の诱脚舐め脚责91 | 欧美日韩久久久一区| 一区二区三区在线观看动漫| 97se亚洲国产综合自在线| 国产精品国产自产拍高清av | 亚洲h在线观看| 欧美视频一区二| 亚洲成人av中文| 欧美一区三区二区| 韩国三级电影一区二区| 久久美女高清视频| 懂色av一区二区三区蜜臀| 亚洲国产精品二十页| 91在线观看美女| 亚洲国产精品久久人人爱| 欧美老人xxxx18| 久久精品av麻豆的观看方式| 久久综合色8888| 99精品欧美一区二区三区小说 | 成人精品国产免费网站| 中文字幕一区三区| 精品视频一区三区九区| 日韩不卡一区二区三区| 国产亚洲制服色| 色综合中文字幕国产| 视频一区中文字幕| 久久影音资源网| 一本到一区二区三区| 日韩精品乱码免费| 国产精品久久久久四虎| 欧美久久高跟鞋激| 国产盗摄精品一区二区三区在线 | 91麻豆产精品久久久久久| 亚洲不卡在线观看| 久久婷婷一区二区三区| 91香蕉视频在线| 久久精品国产99久久6| 国产精品动漫网站| 欧美成人一级视频| 色久优优欧美色久优优| 精品一区二区免费| 亚洲五码中文字幕| 国产精品乱码一区二三区小蝌蚪| 欧美日韩视频第一区| 成人av资源站| 麻豆91精品91久久久的内涵| 亚洲乱码一区二区三区在线观看| 久久久久久久久久看片| 欧美日韩夫妻久久| 91视频在线观看免费| 国产一区二区在线影院| 日本在线观看不卡视频| 亚洲男女毛片无遮挡| 中文字幕乱码亚洲精品一区| 精品欧美一区二区在线观看| 777午夜精品视频在线播放| 日本乱人伦一区| 99麻豆久久久国产精品免费优播| 国产乱人伦精品一区二区在线观看 | 成人app软件下载大全免费| 精品在线免费观看| 麻豆高清免费国产一区| 天天综合网天天综合色 | 欧美疯狂做受xxxx富婆| 99re成人精品视频| 国产成人av自拍| 国产乱淫av一区二区三区| 韩国精品主播一区二区在线观看| 日本亚洲三级在线| 丝袜美腿成人在线| 日本欧美在线看| 日韩和欧美的一区| 日本不卡1234视频| 美女一区二区视频| 青青草国产成人av片免费| 亚洲成人免费影院| 视频一区视频二区中文字幕| 日韩高清在线一区| 男人操女人的视频在线观看欧美| 日韩成人免费电影| 久久av中文字幕片| 久久99久久精品欧美| 精品一区二区影视| 国产一区激情在线| 成人免费视频一区| 91网址在线看| 欧美日韩免费电影| 日韩小视频在线观看专区| 日韩你懂的在线观看| 久久久亚洲精品石原莉奈| 国产精品免费免费| 亚洲香肠在线观看| 久久se精品一区精品二区| 国产九色精品成人porny| 北条麻妃一区二区三区| 91麻豆国产福利在线观看| 欧美人牲a欧美精品| 久久一留热品黄| 亚洲欧美一区二区三区极速播放 | 蜜臀久久99精品久久久画质超高清| 美女网站视频久久| 国产高清亚洲一区| 日本韩国视频一区二区| 欧美老人xxxx18| 欧美国产丝袜视频| 亚洲国产精品一区二区久久恐怖片| 免费视频最近日韩| 91视视频在线观看入口直接观看www | 在线观看日韩一区| 日韩欧美资源站| 国产精品国产自产拍高清av| 亚洲一区视频在线| 国产精一区二区三区| 欧美做爰猛烈大尺度电影无法无天| 欧美一区二区观看视频| 国产精品麻豆视频| 日韩和欧美的一区| www.一区二区| 日韩一区二区三区高清免费看看| 国产欧美一区二区精品性| 日韩高清一级片| 91日韩在线专区| 2023国产精华国产精品| 亚洲国产日韩av| 成人av网址在线观看|