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

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

?? main.cpp

?? 游戲編程精髓數學部分代碼和原程序不錯的!不錯!
?? CPP
字號:
/* Copyright (C) Miguel Gomez, 2000.  * All rights reserved worldwide. * * This software is provided "as is" without express or implied * warranties. You may freely copy and compile this source into * applications you distribute provided that the copyright text * below is included in the resulting source code, for example: * "Portions Copyright (C) Miguel Gomez, 2000" */#include <stdio.h>#include <stdlib.h>#include <time.h>#include <cmath>#include <GL/glut.h>#ifndef _WIN32#include <sys/timeb.h>#endif#include "body.h"#include "mathphys.h"// NOTE:  x is right, y is forward, z is up//// 3D Camera//struct Camera : public COORD_FRAME{	float D, F;	//near and far plane	VECTOR3 V;	//velocity	VECTOR3 W;	//angular velocity	Camera()		: D(0.1f), F(100)	{}	Camera( float d, float f, float a )		: D(d), F(f)	{}};Camera gCamera;RIGID_BODY	gSpinningBox( 1, VECTOR3(1,2,3) );/////////////////////////////////////////////////////////////////////////////////////void drawScene(){	//draw the ground plane	glBegin( GL_QUADS );	{		glColor3f( 1, 1, 1 );//white		glNormal3f( 0, 0, 1 );		glVertex3f( 10, 10, 0 );		glColor3f( 1, 1, 1 );//white		glNormal3f( 0, 0, 1 );		glVertex3f( -10, 10, 0 );		glColor3f( 1, 1, 1 );//white		glNormal3f( 0, 0, 1 );		glVertex3f( -10, -10, 0 );		glColor3f( 1, 1, 1 );//white		glNormal3f( 0, 0, 1 );		glVertex3f( 10, -10, 0 );	}	glEnd();	/*	//draw a sphere	glPushMatrix();	{		glColor3f( 0, 0, 1 );//blue		glTranslatef( 0, 0, 1 );		glutSolidSphere( 1, 64, 64 );//		glutWireSphere( 1, 64, 64 );	}	glPopMatrix();	//*/	//draw a box spinning in the air	glColor3f( 1, 1, 1 );//white	glPushMatrix();	{		//HACK:  Add in scale factor		const VECTOR3& R0 = gSpinningBox.Dim.x * gSpinningBox.R[0];		const VECTOR3& R1 = gSpinningBox.Dim.y * gSpinningBox.R[1];		const VECTOR3& R2 = gSpinningBox.Dim.z * gSpinningBox.R[2];		const VECTOR3& O = gSpinningBox.O;		float M[4][4] =		{			{ R0.x, R0.y, R0.z, 0 },			{ R1.x, R1.y, R1.z, 0 },			{ R2.x, R2.y, R2.z, 0 },			{ O.x, O.y, O.z, 1 },		};		glMultMatrixf( (float*)M );		glutSolidCube( 1 );	}	glPopMatrix();}/////////////////////////////////////////////////////////////////////////////////////void display(){	//load camera	glMatrixMode( GL_MODELVIEW );	const VECTOR3 R0 = gCamera.R[0];	const VECTOR3 R1 = gCamera.R[2];//swap and negate to match	const VECTOR3 R2 = -gCamera.R[1];//OGL's camera convention	const VECTOR3& O = gCamera.O;//position	float M[4][4] =	{		{ R0.x, R1.x, R2.x, 0 },//X		{ R0.y, R1.y, R2.y, 0 },//Y		{ R0.z, R1.z, R2.z, 0 },//Z		{ -R0.dot(O), -R1.dot(O), -R2.dot(O), 1 }//translation	};	glLoadMatrixf( (float*)M );	//NOTE:  light position must be set	//AFTER the camera is loaded but	//BEFORE the models are rendered	//because it is multiplied by the	//modelview matrix and stored	float light_position[]	= { 10,10,10,1 };	glLightfv( GL_LIGHT0, GL_POSITION, light_position );	//clear frame buffer	glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );	drawScene();	//*/	//flush and page flip	glutSwapBuffers();}/////////////////////////////////////////////////////////////////////////////////////void idle(){#ifdef _WIN32	static float t0 = (float)clock() / CLOCKS_PER_SEC;	float t1 = (float)clock() / CLOCKS_PER_SEC;#else	// This doesn't seem to work properly under Linux!	static struct timeb storig;	static int firstTime = 1;	static float t0; 	struct timeb st1;	float t1;		// Set up initial time	if (firstTime == 1) {		ftime(&storig);		firstTime = 0;		t0 = 0.0f;	}	// Get current time	ftime(&st1);	t1 = (float)((st1.time - storig.time) + (float)st1.millitm/1000.0f);#endif	float dt = t1 - t0;	printf("dt=%f\n", dt);	t0 = t1;//for the next frame	//HACK:  prevent large time steps	if( dt>0.1f )		dt = 0.1f;	//animate the camera	gCamera.translate( gCamera.V * dt );	//rotate the box	const VECTOR3 dw = gSpinningBox.dwdt( VECTOR3(0,0,0) ) * dt;	gSpinningBox.rotate( gSpinningBox.W * dt );	gSpinningBox.W += dw;	gSpinningBox.W *= 0.999f;//HACK: fake energy loss	//redraw	glutPostRedisplay();}/////////////////////////////////////////////////////////////////////////////////////void initScene(){	//init lights	float black[]			= { 0,0,0,0 };	float white[]			= { 1,1,1,1 };	float mat_shininess[]	= { 50 };	float amb_light[]		= { 0.1f,0.1f,0.1f,1 };	glShadeModel( GL_SMOOTH );	//global ambient light	glLightModelfv( GL_LIGHT_MODEL_AMBIENT, amb_light );	glMaterialfv( GL_FRONT, GL_AMBIENT, white );	glMaterialfv( GL_FRONT, GL_DIFFUSE, white );	glMaterialfv( GL_FRONT, GL_SPECULAR, white );	glMaterialfv( GL_FRONT, GL_SHININESS, mat_shininess );	//update material color with glColor()	glColorMaterial( GL_FRONT, GL_DIFFUSE );	glEnable( GL_COLOR_MATERIAL );	//light0 properties	glLightfv( GL_LIGHT0, GL_AMBIENT, black );	glLightfv( GL_LIGHT0, GL_DIFFUSE, white );	glLightfv( GL_LIGHT0, GL_SPECULAR, white );	glLightf( GL_LIGHT0, GL_QUADRATIC_ATTENUATION,	0.005f );	glLightf( GL_LIGHT0, GL_LINEAR_ATTENUATION,		0.001f );	glLightf( GL_LIGHT0, GL_CONSTANT_ATTENUATION,	1.0 );	glEnable( GL_LIGHTING );	glEnable( GL_LIGHT0 );	glEnable( GL_DEPTH_TEST );	glDepthFunc( GL_LEQUAL );	//init camera (this looked good)	gCamera.position( 5.8f, -5.2f, 4.5f );	gCamera.R[0] = VECTOR3( 0.75f, 0.66f, 0 );	gCamera.R[1] = VECTOR3( -0.58f, 0.66f, -0.48f);	gCamera.R[2] = VECTOR3( -0.32f, 0.36f, 0.88f );	//init spinning box	gSpinningBox.position( 0, 0, 2.5f );	gSpinningBox.W = VECTOR3( 0.5f, 0.5f, 10.0f );}/////////////////////////////////////////////////////////////////////////////////////void keyboard( unsigned char key, int x, int y ){	int kd=0;	//BUG:  arrow keys don't trigger this callback.	switch( key )	{	case 'e':	case 'E':		gCamera.rotateAboutX( -0.05f );//look down		break;	case 'd':	case 'D':		gCamera.rotateAboutX( 0.05f );//look up		break;	case 's':	case 'S':		gCamera.rotate( 0.05f*VECTOR3(0,0,1) );//turn left		break;	case 'f':	case 'F':		gCamera.rotate( -0.05f*VECTOR3(0,0,1) );//turn right		break;	case 27:		exit(0);		break;	}}/////////////////////////////////////////////////////////////////////////////////////void mouse( int button, int state, int x1, int y1 ){	//catch button state	switch( state )	{	case GLUT_DOWN:		switch( button )		{		case GLUT_LEFT_BUTTON:			gCamera.V = 2*gCamera.R[1];//forward at 2 m/s			break;		case GLUT_RIGHT_BUTTON:			gCamera.V = -2*gCamera.R[1];//backward at 2 m/s			break;		}		break;	case GLUT_UP:		switch( button )		{		case GLUT_LEFT_BUTTON:			gCamera.V = VECTOR3(0,0,0);//stop			break;		case GLUT_RIGHT_BUTTON:			gCamera.V = VECTOR3(0,0,0);//stop			break;		}		break;	}	glutPostRedisplay();}/////////////////////////////////////////////////////////////////////////////////////void visible( int vis ){	if( vis == GLUT_VISIBLE )	{		glutIdleFunc( idle );	}	else	{		glutIdleFunc( NULL );	}}/////////////////////////////////////////////////////////////////////////////////////void reshape( int w, int h ){	const float D = gCamera.D;//near plane	const float F = gCamera.F;//far plane	const float Q = F / (F-D);	const float a = float(h) / w;//aspect ratio	glViewport( 0, 0, w, h );	glMatrixMode( GL_PROJECTION );	glLoadIdentity();	glFrustum( -D, D, -a*D, a*D, D, F );}/////////////////////////////////////////////////////////////////////////////////////int main( int argc, char **argv ){	//initialize display mode	glutInit( &argc, argv );	glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL );	glutInitWindowSize( 800, 600 );	glutInitWindowPosition( 100, 100 );	glutCreateWindow( "Rigid Body Demo" );	//setup callbacks	glutDisplayFunc( display );	glutKeyboardFunc( keyboard );	glutMouseFunc( mouse );	glutReshapeFunc( reshape );	glutVisibilityFunc( visible );	//initialize the scene and objects	initScene();	glutMainLoop();	return 0;}//EOF

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米亚洲午夜久久精品| av中文字幕不卡| 本田岬高潮一区二区三区| 日本道色综合久久| 欧美激情综合在线| 九九精品视频在线看| 欧美在线视频日韩| 欧美国产国产综合| 久久99九九99精品| 欧美三区免费完整视频在线观看| 久久色中文字幕| 三级亚洲高清视频| 欧美视频中文字幕| 亚洲男同性视频| 成人激情免费视频| 久久久久国产精品人| 婷婷综合在线观看| 精品视频免费在线| 亚洲一区二区美女| 91浏览器在线视频| 亚洲视频每日更新| 成人av网在线| 亚洲欧洲日本在线| 91伊人久久大香线蕉| 国产精品乱码妇女bbbb| 国产v日产∨综合v精品视频| 精品日产卡一卡二卡麻豆| 日日夜夜免费精品视频| 欧美日精品一区视频| 亚洲一二三四在线| 在线亚洲一区观看| 亚洲影视在线观看| 欧美日韩亚州综合| 日韩二区在线观看| 欧美一级黄色大片| 久久精品国产亚洲高清剧情介绍| 777午夜精品视频在线播放| 天堂影院一区二区| 日韩一区二区三区电影在线观看| 青青草97国产精品免费观看 | 99精品视频一区二区| 国产亚洲精品中文字幕| 国产v日产∨综合v精品视频| 国产精品欧美一区二区三区| 成人a区在线观看| 国产精品久久久久久久久免费相片 | 国产综合色在线| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产日韩视频一区二区三区| 国产福利91精品| 亚洲欧洲精品天堂一级| 91国在线观看| 五月综合激情网| 久久老女人爱爱| 97se狠狠狠综合亚洲狠狠| 国产精品每日更新| 91久久精品国产91性色tv| 亚洲国产视频一区二区| 日韩精品一区二区三区老鸭窝| 国产一区二区三区免费观看| 日本一区二区三区国色天香| 色偷偷久久一区二区三区| 亚洲成年人影院| 久久久久久久精| 91美女精品福利| 青青草伊人久久| 国产精品电影院| 欧美肥大bbwbbw高潮| 国产一区二区三区四区五区入口 | 麻豆久久久久久| 亚洲欧洲国产日本综合| 欧美日本一区二区| 国产精品一区二区在线播放| 最新成人av在线| 精品久久国产字幕高潮| 色欧美片视频在线观看| 免播放器亚洲一区| 亚洲免费在线看| 精品国内二区三区| 在线免费观看日本欧美| 国产在线不卡一区| 亚洲国产va精品久久久不卡综合 | 国产精品一区二区x88av| 亚洲高清不卡在线| 国产精品情趣视频| 欧美成人一级视频| 欧美亚一区二区| 99视频热这里只有精品免费| 麻豆精品视频在线观看| 亚洲在线视频免费观看| 国产精品女主播av| www国产精品av| 欧美一区二区在线看| 91色综合久久久久婷婷| 韩国三级在线一区| 亚洲不卡一区二区三区| 国产精品夫妻自拍| 国产亚洲欧美一级| 精品国产一区二区三区久久影院 | 国产精品成人免费在线| www国产成人| 精品卡一卡二卡三卡四在线| 欧美性受xxxx黑人xyx性爽| 99国产精品久久久久久久久久久| 国产一本一道久久香蕉| 免费在线观看不卡| 日韩成人av影视| 五月天中文字幕一区二区| 亚洲自拍欧美精品| 亚洲欧洲综合另类| 国产精品毛片a∨一区二区三区| 日韩视频一区二区| 欧美一二三四在线| 在线电影一区二区三区| 欧美日本韩国一区二区三区视频 | 色域天天综合网| 色综合天天做天天爱| 99精品视频一区二区三区| 成人毛片老司机大片| 成人av动漫在线| 本田岬高潮一区二区三区| 成人动漫一区二区| 99久久综合精品| 一本一道久久a久久精品综合蜜臀| 成人影视亚洲图片在线| www.成人在线| 欧美在线不卡一区| 在线播放日韩导航| 日韩视频免费直播| 久久精品人人做人人爽人人| 国产欧美日韩激情| 亚洲欧美激情一区二区| 亚洲综合另类小说| 日韩av不卡在线观看| 激情欧美日韩一区二区| 国产成人av一区二区| aaa国产一区| 欧美视频中文字幕| 久久先锋影音av鲁色资源网| 亚洲国产精品精华液2区45| 亚洲男同性恋视频| 秋霞av亚洲一区二区三| 狠狠色丁香婷婷综合| 92国产精品观看| 91精品在线观看入口| 国产欧美在线观看一区| 亚洲综合色婷婷| 国内精品伊人久久久久av影院| 国产99一区视频免费| 欧美熟乱第一页| 久久精品亚洲精品国产欧美| 亚洲一区在线观看免费观看电影高清| 视频一区二区不卡| 风间由美一区二区三区在线观看| 色综合天天综合色综合av| 欧美一级视频精品观看| 国产精品美女久久久久aⅴ| 午夜电影一区二区三区| 成人午夜伦理影院| 欧美一区二区三区四区视频| 中文字幕第一区第二区| 免费高清在线一区| 成人黄色国产精品网站大全在线免费观看 | 亚洲成人动漫在线免费观看| 紧缚奴在线一区二区三区| 一本大道久久a久久精品综合| 精品久久久久久最新网址| 亚洲午夜激情av| 懂色av一区二区三区蜜臀| 日韩欧美中文字幕一区| 一区二区三区久久| 床上的激情91.| 日韩精品一区二区三区中文不卡 | 最新久久zyz资源站| 欧美aaa在线| 91国产丝袜在线播放| 国产精品久久毛片a| 国内精品伊人久久久久av影院 | 国产亚洲精品福利| 麻豆成人免费电影| 欧美精品丝袜久久久中文字幕| 亚洲欧洲美洲综合色网| 国产999精品久久| 久久一区二区三区四区| 毛片av一区二区| 91精品国产综合久久久久久| 亚洲黄网站在线观看| 91香蕉视频在线| 国产精品久久一级| 成a人片亚洲日本久久| 久久久精品欧美丰满| 国产一区二区三区在线看麻豆| 欧美一级片在线观看| 石原莉奈在线亚洲三区| 欧美日韩成人一区| 污片在线观看一区二区| 欧美日本不卡视频| 婷婷久久综合九色综合绿巨人| 欧美色网一区二区| 偷窥少妇高潮呻吟av久久免费|