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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 3d.cpp

?? 我們使用多邊形和四邊形創(chuàng)建3D物體
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*
 *		這些代碼是由Jeff Molofee 與2000年寫的,再次我必須感謝Fredric Echols,因為他使這些代碼看起來更簡潔和高效,并使他易于使用。
 *		如果你發(fā)現(xiàn)這些代碼對你有所幫助,請訪問我的站點 http://nehe.gamedev.net/default.asp ,并讓我知道。
 *********************************************************************************************************************************
 *		這份文檔是由DancingWind翻譯的,如果有什么錯誤請e-mail:zhouwei02@mails.tsinghua.edu.cn
 *		基于04_Rotate。cpp文件修改
 *		//old code			//不用了代碼用//刪除
 *		/********************************************************************************************************************/	/*
 *		new code			//新的代碼位于兩排/*************/ /*之間,便于查找
 *		/********************************************************************************************************************/	/*
/***********************************新添的代碼***********************************************************************************/
/********************************************************************************************************************************/
/*********************包含鏈接的庫文件*******************************************************************************************/
#pragma comment( lib, "opengl32.lib" )				
#pragma comment( lib, "glu32.lib" )	
#pragma comment( lib, "glut32.lib")
#pragma comment( lib, "glew32.lib")
#pragma comment( lib, "glaux.lib")
#pragma comment( lib, "vfw32.lib" )	
/********************************************************************************************************************************/
#include <windows.h>		// Windows的頭文件
#include "glew.h"			// 包含最新的gl.h,glu.h庫
#include "glut.h"			// 包含OpenGL實用庫

HDC			hDC=NULL;		// 窗口著色描述表句柄
HGLRC		hRC=NULL;		// OpenGL渲染描述表句柄
HWND		hWnd=NULL;		// 保存我們的窗口句柄
HINSTANCE	hInstance;		// 保存程序的實例

bool	keys[256];			// 保存鍵盤按鍵的數(shù)組
bool	active=TRUE;		// 窗口的活動標志,缺省為TRUE
bool	fullscreen=TRUE;	// 全屏標志缺省,缺省設定成全屏模式
GLfloat		rtri;			// 用于三角形的角度
GLfloat		rquad;			// 用于四邊形的角度

LRESULT	CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);	// WndProc的定義

GLvoid ReSizeGLScene(GLsizei width, GLsizei height)		// 重置OpenGL窗口大小
{
	if (height==0)										// 防止被零除
	{
		height=1;										// 將Height設為1
	}

	glViewport(0,0,width,height);						// 重置當前的視口

	glMatrixMode(GL_PROJECTION);						// 選擇投影矩陣
	glLoadIdentity();									// 重置投影矩陣

	// 設置視口的大小
	gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);

	glMatrixMode(GL_MODELVIEW);							// 選擇模型觀察矩陣
	glLoadIdentity();									// 重置模型觀察矩陣
}

int InitGL(GLvoid)										// 此處開始對OpenGL進行所有設置
{
	glShadeModel(GL_SMOOTH);							// 啟用陰影平滑
	glClearColor(0.0f, 0.0f, 0.0f, 0.5f);				// 黑色背景
	glClearDepth(1.0f);									// 設置深度緩存
	glEnable(GL_DEPTH_TEST);							// 啟用深度測試
	glDepthFunc(GL_LEQUAL);								// 所作深度測試的類型
	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);	// 告訴系統(tǒng)對透視進行修正
	return TRUE;										// 初始化 OK
}

int DrawGLScene(GLvoid)									// 從這里開始進行所有的繪制
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	// 清除屏幕和深度緩存
	glLoadIdentity();									// 重置當前的模型觀察矩陣
	glTranslatef(-1.5f,0.0f,-6.0f);						// 左移 1.5 單位,并移入屏幕 6.0
	glRotatef(rtri,0.0f,1.0f,0.0f);						// 繞Y軸旋轉(zhuǎn)三角形
//	glBegin(GL_TRIANGLES);								// 繪制三角形
//		glColor3f(1.0f,0.0f,0.0f);						// 設置當前色為紅色
//		glVertex3f( 0.0f, 1.0f, 0.0f);					// 上頂點
//		glColor3f(0.0f,1.0f,0.0f);						// 設置當前色為綠色
//		glVertex3f(-1.0f,-1.0f, 0.0f);					// 左下
//		glColor3f(0.0f,0.0f,1.0f);						// 設置當前色為藍色
//		glVertex3f( 1.0f,-1.0f, 0.0f);					// 右下
//	glEnd();											// 三角形繪制結(jié)束
/***********************************新添的代碼***********************************************************************************/
	glBegin(GL_TRIANGLES);								// 開始繪制金字塔的各個面
		glColor3f(1.0f,0.0f,0.0f);						// 紅色
		glVertex3f( 0.0f, 1.0f, 0.0f);					// 三角形的上頂點 (前側(cè)面)
		glColor3f(0.0f,1.0f,0.0f);						// 綠色
		glVertex3f(-1.0f,-1.0f, 1.0f);					// 三角形的左下頂點 (前側(cè)面)
		glColor3f(0.0f,0.0f,1.0f);						// 藍色
		glVertex3f( 1.0f,-1.0f, 1.0f);					// 三角形的右下頂點 (前側(cè)面)

		glColor3f(1.0f,0.0f,0.0f);						// 紅色
		glVertex3f( 0.0f, 1.0f, 0.0f);					// 三角形的上頂點 (右側(cè)面)
		glColor3f(0.0f,0.0f,1.0f);						// 藍色
		glVertex3f( 1.0f,-1.0f, 1.0f);					// 三角形的左下頂點 (右側(cè)面)
		glColor3f(0.0f,1.0f,0.0f);						// 綠色
		glVertex3f( 1.0f,-1.0f, -1.0f);					// 三角形的右下頂點 (右側(cè)面)

		glColor3f(1.0f,0.0f,0.0f);						// 紅色
		glVertex3f( 0.0f, 1.0f, 0.0f);					// 三角形的上頂點 (后側(cè)面)
		glColor3f(0.0f,1.0f,0.0f);						// 綠色
		glVertex3f( 1.0f,-1.0f, -1.0f);					// 三角形的左下頂點 (后側(cè)面)
		glColor3f(0.0f,0.0f,1.0f);						// 藍色
		glVertex3f(-1.0f,-1.0f, -1.0f);					// 三角形的右下頂點 (后側(cè)面)

		glColor3f(1.0f,0.0f,0.0f);						// 紅色
		glVertex3f( 0.0f, 1.0f, 0.0f);					// 三角形的上頂點 (左側(cè)面)
		glColor3f(0.0f,0.0f,1.0f);						// 藍色
		glVertex3f(-1.0f,-1.0f,-1.0f);					// 三角形的左下頂點 (左側(cè)面)
		glColor3f(0.0f,1.0f,0.0f);						// 綠色
		glVertex3f(-1.0f,-1.0f, 1.0f);					// 三角形的右下頂點 (左側(cè)面)
	glEnd();											// 金字塔繪制結(jié)束
/********************************************************************************************************************************/
//	glTranslatef(3.0f,0.0f,0.0f);						// 右移3單位
//	glColor3f(0.5f,0.5f,1.0f);							// 一次性將當前色設置為藍色
//	glLoadIdentity();									// 重置模型觀察矩陣
//	glTranslatef(1.5f,0.0f,-6.0f);						// 右移1.5單位,并移入屏幕 6.0
//	glRotatef(rquad,1.0f,0.0f,0.0f);					// 繞X軸旋轉(zhuǎn)四邊形
//	rtri+=0.2f;											// 增加三角形的旋轉(zhuǎn)變量
//	rquad-=0.15f;										// 減少四邊形的旋轉(zhuǎn)變量
//	glBegin(GL_QUADS);									//  繪制正方形
//		glVertex3f(-1.0f, 1.0f, 0.0f);					// 左上
//		glVertex3f( 1.0f, 1.0f, 0.0f);					// 右上
//		glVertex3f( 1.0f,-1.0f, 0.0f);					// 左下
//		glVertex3f(-1.0f,-1.0f, 0.0f);					// 右下
//	glEnd();											// 正方形繪制結(jié)束
/***********************************新添的代碼***********************************************************************************/
	glLoadIdentity();									// 把模型變換矩陣清零
	glTranslatef(1.5f,0.0f,-7.0f);						// 先右移再移入屏幕
	glRotatef(rquad,1.0f,1.0f,1.0f);					// 在XYZ軸上旋轉(zhuǎn)立方體

	glBegin(GL_QUADS);									// 開始繪制立方體
		glColor3f(0.0f,1.0f,0.0f);						// 顏色改為藍色
		glVertex3f( 1.0f, 1.0f,-1.0f);					// 四邊形的右上頂點 (頂面)
		glVertex3f(-1.0f, 1.0f,-1.0f);					// 四邊形的左上頂點 (頂面)
		glVertex3f(-1.0f, 1.0f, 1.0f);					// 四邊形的左下頂點 (頂面)
		glVertex3f( 1.0f, 1.0f, 1.0f);					// 四邊形的右下頂點 (頂面)

		glColor3f(1.0f,0.5f,0.0f);						// 顏色改成橙色
		glVertex3f( 1.0f,-1.0f, 1.0f);					// 四邊形的右上頂點(底面)
		glVertex3f(-1.0f,-1.0f, 1.0f);					// 四邊形的左上頂點(底面)
		glVertex3f(-1.0f,-1.0f,-1.0f);					// 四邊形的左下頂點(底面)
		glVertex3f( 1.0f,-1.0f,-1.0f);					// 四邊形的右下頂點(底面)

		glColor3f(1.0f,0.0f,0.0f);						// 顏色改成紅色
		glVertex3f( 1.0f, 1.0f, 1.0f);					// 四邊形的右上頂點(前面)
		glVertex3f(-1.0f, 1.0f, 1.0f);					// 四邊形的左上頂點(前面)
		glVertex3f(-1.0f,-1.0f, 1.0f);					// 四邊形的左下頂點(前面)
		glVertex3f( 1.0f,-1.0f, 1.0f);					// 四邊形的右下頂點(前面)

		glColor3f(1.0f,1.0f,0.0f);						// 顏色改成黃色
		glVertex3f( 1.0f,-1.0f,-1.0f);					// 四邊形的右上頂點(后面)
		glVertex3f(-1.0f,-1.0f,-1.0f);					// 四邊形的左上頂點(后面)
		glVertex3f(-1.0f, 1.0f,-1.0f);					// 四邊形的左下頂點(后面)
		glVertex3f( 1.0f, 1.0f,-1.0f);					// 四邊形的右下頂點(后面)

		glColor3f(0.0f,0.0f,1.0f);						// 顏色改成藍色
		glVertex3f(-1.0f, 1.0f, 1.0f);					// 四邊形的右上頂點(左面)
		glVertex3f(-1.0f, 1.0f,-1.0f);					// 四邊形的左上頂點(左面)
		glVertex3f(-1.0f,-1.0f,-1.0f);					// 四邊形的左下頂點(左面)
		glVertex3f(-1.0f,-1.0f, 1.0f);					// 四邊形的右下頂點(左面)

		glColor3f(1.0f,0.0f,1.0f);						// 顏色改成紫羅蘭色
		glVertex3f( 1.0f, 1.0f,-1.0f);					// 四邊形的右上頂點(右面)
		glVertex3f( 1.0f, 1.0f, 1.0f);					// 四邊形的左上頂點(右面)
		glVertex3f( 1.0f,-1.0f, 1.0f);					// 四邊形的左下頂點(右面)
		glVertex3f( 1.0f,-1.0f,-1.0f);					// 四邊形的右下頂點(右面)
	glEnd();											// 立方體繪制結(jié)束

	rtri+=0.2f;											// 增加三角形的旋轉(zhuǎn)變量
	rquad-=0.15f;										// 減少四邊形的旋轉(zhuǎn)變量
/********************************************************************************************************************************/
	return TRUE;										// 一切 OK
}

GLvoid KillGLWindow(GLvoid)								// 正常銷毀窗口
{
	if (fullscreen)										// 我們處于全屏模式嗎?
	{
		ChangeDisplaySettings(NULL,0);					// 是的話,切換回桌面
		ShowCursor(TRUE);								// 顯示鼠標指針
	}

	if (hRC)											//我們擁有OpenGL描述表嗎?
	{
		if (!wglMakeCurrent(NULL,NULL))					// 我們能否釋放DC和RC描述表?
		{
			MessageBox(NULL,"釋放DC或RC失敗。","關(guān)閉錯誤",MB_OK | MB_ICONINFORMATION);
		}

		if (!wglDeleteContext(hRC))						// 我們能否刪除RC?
		{
			MessageBox(NULL,"釋放RC失敗。","關(guān)閉錯誤",MB_OK | MB_ICONINFORMATION);
		}
		hRC=NULL;										// 將RC設為 NULL
	}

	if (hDC && !ReleaseDC(hWnd,hDC))					// 我們能否釋放 DC?
	{
		MessageBox(NULL,"釋放DC失敗。","關(guān)閉錯誤",MB_OK | MB_ICONINFORMATION);
		hDC=NULL;										// 將 DC 設為 NULL
	}

	if (hWnd && !DestroyWindow(hWnd))					// 能否銷毀窗口?
	{
		MessageBox(NULL,"釋放窗口句柄失敗。","關(guān)閉錯誤",MB_OK | MB_ICONINFORMATION);
		hWnd=NULL;										// 將 hWnd 設為 NULL
	}

	if (!UnregisterClass("OpenG",hInstance))			// 能否注銷類?
	{
		MessageBox(NULL,"不能注銷窗口類。","關(guān)閉錯誤",MB_OK | MB_ICONINFORMATION);
		hInstance=NULL;									// 將 hInstance 設為 NULL
	}
}

/*	這個函數(shù)創(chuàng)建我們OpenGL窗口,參數(shù)為:									*
 *	title			- 窗口標題												*
 *	width			- 窗口寬度												*
 *	height			- 窗口高度												*
 *	bits			- 顏色的位深(8/16/32)									*
 *	fullscreenflag	- 是否使用全屏模式,全屏模式(TRUE),窗口模式(FALSE)		*/
 
BOOL CreateGLWindow(char* title, int width, int height, int bits, bool fullscreenflag)
{
	GLuint		PixelFormat;			// 保存查找匹配的結(jié)果
	WNDCLASS	wc;						// 窗口類結(jié)構(gòu)
	DWORD		dwExStyle;				// 擴展窗口風格
	DWORD		dwStyle;				// 窗口風格
	RECT		WindowRect;				// 取得矩形的左上角和右下角的坐標值
	WindowRect.left=(long)0;			// 將Left   設為 0
	WindowRect.right=(long)width;		// 將Right  設為要求的寬度
	WindowRect.top=(long)0;				// 將Top    設為 0
	WindowRect.bottom=(long)height;		// 將Bottom 設為要求的高度

	fullscreen=fullscreenflag;			// 設置全局全屏標志

	hInstance			= GetModuleHandle(NULL);				// 取得我們窗口的實例
	wc.style			= CS_HREDRAW | CS_VREDRAW | CS_OWNDC;	// 移動時重畫,并為窗口取得DC
	wc.lpfnWndProc		= (WNDPROC) WndProc;					// WndProc處理消息
	wc.cbClsExtra		= 0;									// 無額外窗口數(shù)據(jù)
	wc.cbWndExtra		= 0;									// 無額外窗口數(shù)據(jù)
	wc.hInstance		= hInstance;							// 設置實例
	wc.hIcon			= LoadIcon(NULL, IDI_WINLOGO);			// 裝入缺省圖標
	wc.hCursor			= LoadCursor(NULL, IDC_ARROW);			// 裝入鼠標指針
	wc.hbrBackground	= NULL;									// GL不需要背景
	wc.lpszMenuName		= NULL;									// 不需要菜單
	wc.lpszClassName	= "OpenG";							// 設定類名字

	if (!RegisterClass(&wc))									// 嘗試注冊窗口類
	{
		MessageBox(NULL,"注冊窗口失敗","錯誤",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;											// 退出并返回FALSE
	}
	
	if (fullscreen)												// 要嘗試全屏模式嗎?
	{
		DEVMODE dmScreenSettings;								// 設備模式
		memset(&dmScreenSettings,0,sizeof(dmScreenSettings));	// 確保內(nèi)存清空為零
		dmScreenSettings.dmSize=sizeof(dmScreenSettings);		// Devmode 結(jié)構(gòu)的大小
		dmScreenSettings.dmPelsWidth	= width;				// 所選屏幕寬度
		dmScreenSettings.dmPelsHeight	= height;				// 所選屏幕高度
		dmScreenSettings.dmBitsPerPel	= bits;					// 每象素所選的色彩深度

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本道在线观看一区二区| 91.com在线观看| 日本欧美一区二区三区| 亚洲国产精品成人久久综合一区| 欧洲精品一区二区| 粉嫩久久99精品久久久久久夜| 亚洲电影一区二区| 国产精品久久福利| 精品国产一区二区三区忘忧草| 欧美性生交片4| 成人99免费视频| 国产麻豆精品在线| 美腿丝袜亚洲三区| 亚洲午夜视频在线观看| 国产精品第13页| 久久久午夜电影| 日韩欧美一级特黄在线播放| 欧美在线观看禁18| 91片在线免费观看| 成人免费视频播放| 国产福利91精品一区二区三区| 青青青爽久久午夜综合久久午夜 | 久久人人爽爽爽人久久久| 欧美日韩免费电影| 欧美做爰猛烈大尺度电影无法无天| 成人黄色av网站在线| 国产成人日日夜夜| 国产福利一区二区三区| 国内精品写真在线观看| 免费的成人av| 蜜臂av日日欢夜夜爽一区| 日日欢夜夜爽一区| 精品久久久久久无| 国产一区二区电影| 亚洲综合色视频| 91福利在线观看| 豆国产96在线|亚洲| 99精品久久只有精品| 精品国产乱码久久久久久久 | 色婷婷久久久综合中文字幕| 老汉av免费一区二区三区 | 91精品久久久久久久久99蜜臂| 欧美日韩一区二区三区在线 | 一区二区高清在线| 色综合色狠狠天天综合色| 日本一区二区综合亚洲| 91久久人澡人人添人人爽欧美 | 国产蜜臀av在线一区二区三区| 9191成人精品久久| 国模套图日韩精品一区二区| 亚洲最色的网站| 亚洲欧美视频在线观看视频| 欧美一区二区播放| 欧美午夜电影网| 99久久99久久精品免费观看 | 欧美精品免费视频| 成人av动漫网站| 一区二区三区**美女毛片| 精品欧美一区二区三区精品久久| 国产福利91精品一区| 成人欧美一区二区三区白人| 精品1区2区在线观看| 91在线视频在线| 裸体健美xxxx欧美裸体表演| 精品国产制服丝袜高跟| 国产精品色哟哟| 国产精品久久久久久久久晋中| 久久蜜桃一区二区| 国产欧美日韩视频在线观看| 久久天天做天天爱综合色| 久久久久久久综合狠狠综合| 精品99999| 亚洲最新视频在线播放| 综合在线观看色| 日韩一区二区精品葵司在线| 91激情五月电影| 国产99久久久久久免费看农村| 国产在线精品一区在线观看麻豆| 成人免费视频视频| 日韩欧美中文字幕制服| 91在线观看地址| 欧美一区二区三区白人 | 91在线小视频| 欧美一区二区三区在线看| 久久久久久久综合色一本| 亚洲乱码中文字幕| 久久精品久久综合| 99久久久久久99| 日韩欧美一区在线观看| 中文字幕一区二区不卡| 日本中文在线一区| 99精品黄色片免费大全| 精品久久国产字幕高潮| 亚洲激情自拍视频| 国产激情一区二区三区| 3atv一区二区三区| 国产精品久久久久影视| 蜜臀av性久久久久蜜臀aⅴ四虎| 成人黄色国产精品网站大全在线免费观看 | 男人的j进女人的j一区| 99精品久久久久久| 久久久亚洲精品一区二区三区| 亚洲国产精品久久人人爱 | 欧美一区二区大片| 一区二区在线看| 国产不卡在线播放| 日韩视频免费直播| 亚洲福利电影网| 色呦呦网站一区| 国产精品视频一二| 国产婷婷色一区二区三区| 日本韩国欧美在线| 亚洲一区二区三区影院| 99riav一区二区三区| 国产日本欧洲亚洲| 亚洲一二三区视频在线观看| 在线视频综合导航| 亚洲国产婷婷综合在线精品| 波多野结衣中文字幕一区 | 伦理电影国产精品| av成人免费在线| 久久亚洲欧美国产精品乐播 | 国产日韩欧美激情| 精品一区中文字幕| 日韩一区二区三区视频在线| 亚洲精品成人悠悠色影视| 不卡的av电影在线观看| 国产偷国产偷亚洲高清人白洁| 免费成人av资源网| 91麻豆精品国产91久久久资源速度| 亚洲曰韩产成在线| 在线免费不卡电影| 亚洲精品美腿丝袜| 一本到不卡精品视频在线观看 | 中文字幕日韩av资源站| 成人精品亚洲人成在线| 国产精品美女久久久久久久久| 国产一区二区看久久| 久久亚洲精华国产精华液 | 久久久久国产免费免费| 国产一区二区中文字幕| 久久综合色婷婷| 国产一区二区看久久| 欧美激情一区二区| 成人激情开心网| 亚洲天天做日日做天天谢日日欢| 91视频.com| 午夜激情综合网| 精品少妇一区二区| 高潮精品一区videoshd| 中文字幕在线不卡一区二区三区| aaa欧美色吧激情视频| 亚洲精品美腿丝袜| 91精品一区二区三区久久久久久| 蜜臀久久久久久久| 精品国产不卡一区二区三区| 国产乱码精品一区二区三区忘忧草| 国产日韩欧美激情| 日本精品一级二级| 视频在线观看一区| 久久人人97超碰com| 91香蕉视频mp4| 亚洲成人高清在线| 26uuu亚洲综合色欧美| 99久久精品免费| 午夜欧美2019年伦理| 久久只精品国产| 色综合久久综合| 美腿丝袜亚洲三区| 最新久久zyz资源站| 91精品国产综合久久久久久久久久| 激情小说亚洲一区| 一区二区三区加勒比av| 欧美一区二区日韩| 不卡电影一区二区三区| 丝袜诱惑亚洲看片| 国产欧美精品一区二区色综合| 欧美午夜免费电影| 国产一级精品在线| 亚洲综合男人的天堂| 欧美va在线播放| 欧亚洲嫩模精品一区三区| 国产在线日韩欧美| 亚洲一区二区三区四区在线观看 | 亚洲精品乱码久久久久久久久| 日韩女优av电影| 色哟哟一区二区在线观看| 激情六月婷婷综合| 亚洲成人一区在线| 国产午夜精品久久久久久久| 欧美肥大bbwbbw高潮| 成人一级片网址| 看电影不卡的网站| 一区二区三区美女| 久久久久国产精品免费免费搜索| 欧美伊人精品成人久久综合97| 懂色av中文字幕一区二区三区| 免费的成人av| 亚洲高清视频的网址| 国产精品白丝在线|