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

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

?? fhwork.cpp

?? 這個是一個opengl程序
?? CPP
字號:
///////////////////////////////////////////////////
///////////////////////////////////////////////////
//
//fhwork is made by fh and his classmates
//2004.7.8
//

#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glut.h>
#include <math.h>
//////////////////////////////////////////

#define Width_Normal 1
#define Width_Thicker 2
#define Width_Thickest 3

#define iColor_Red 4
#define iColor_Green 5
#define iColor_White 6
#define iColor_Yellow 7
#define iColor_Blue 8

#define iFillIN_No 9
#define iFillIN_Single 10
#define iFillIN_Transition 11

// Rotation amounts
static GLfloat xRot = 0.0f;
static GLfloat yRot = 0.0f;

int iWidth = Width_Normal; 
int iColor = iColor_Green;
int iFillIN = iFillIN_No;

GLfloat i=0;

//bezier's points
GLint nNumPoints = 6;

GLfloat ctrlPoints_Right[6][3] = {{  20.0f, 70.0f, 0.0f},	// End Point
								{ 15.0f, 50.0f, 0.0f},	// Control Point
								{  5.0f, 20.0f, 0.0f},	// Control Point
								{ 70.0f, 0.0f, 0.0f},	// Control Point
								{  40.0f, -40.0f, 0.0f},	// Control Point
								{  30.0f, -70.0f, 0.0f }};	// End Point

GLfloat ctrlPoints_Left[6][3] = {{  -20.0f, 70.0f, 0.0f},	// End Point
								{ -15.0f, 50.0f, 0.0f},	// Control Point
								{  -5.0f, 20.0f, 0.0f},	// Control Point
								{ -70.0f, 0.0f, 0.0f},	// Control Point
								{  -40.0f, -40.0f, 0.0f},	// Control Point
								{  -30.0f, -70.0f, 0.0f }};	// End Point

// This function does any needed initialization on the rendering context. 
void ProcessMenu(int value)
{
	switch(value)
	{
	case 1:
		iWidth = Width_Normal;
		break;		
	case 2:
		iWidth = Width_Thicker;//中
		break;		
	case 3:
		iWidth = Width_Thickest;//粗
		break;	
		
	case 4:
		iColor = iColor_Red;
		break;		
	case 5:
		iColor = iColor_Green;
		break;		
	case 6:
		iColor = iColor_White;
		break;
	case 7:
		iColor = iColor_Yellow;
		break;
	case 8:
		iColor = iColor_Blue;
		break;

	case 9:
		iFillIN = iFillIN_No;
		break;
	case 10:
		iFillIN = iFillIN_Single;
		break;
	case 11:
		iFillIN = iFillIN_Transition;
		break;	
		
	default:
		break;
	}
	
	glutPostRedisplay();
}

// Called to draw scene
void RenderScene(void)
{

	// Clear the window
	glClear(GL_COLOR_BUFFER_BIT);	
	
	// Save matrix state and do the rotation
	glPushMatrix();
	glRotatef(xRot, 1.0f, 0.0f, 0.0f);
	glRotatef(yRot, 0.0f, 1.0f, 0.0f);
	
	// Set the line width 線寬
	if(iWidth == Width_Normal)
		glLineWidth(1.0f);
	
	if(iWidth == Width_Thicker)
		glLineWidth(3.0f);
	
	if(iWidth == Width_Thickest)
		glLineWidth(5.0f);

	// Set drawing color 顏色
	if(iColor == iColor_Red) 
		glColor3f(1.0f, 0.0f, 0.0f);
	if(iColor == iColor_Green) 
		glColor3f(0.0f, 1.0f, 0.0f);
	if(iColor == iColor_White) 
		glColor3f(1.0f, 1.0f, 1.0f);
	if(iColor == iColor_Yellow) 
		glColor3f(1.0f, 1.0f, 0.0f);
	if(iColor == iColor_Blue) 
		glColor3f(0.0f, 0.0f, 1.0f);

	//填充
	if(iFillIN == iFillIN_No)
	{
		glShadeModel(GL_FLAT);
		// Draw the line
		glBegin(GL_LINES);
		glVertex2f(-20.0f, 70.0f);
		glVertex2f(20.0f, 70.0f);
		glVertex2f(-30.0f, -70.0f);
		glVertex2f(30.0f, -70.0f);	
		glEnd();
		
		// Sets up the bezier
		// This actually only needs to be called once and could go in
		// the setup function
		glMap1f(GL_MAP1_VERTEX_3,	// Type of data generated
			0.0f,						// Lower u range
			100.0f,						// Upper u range
			3,							// Distance between points in the data
			nNumPoints,					// number of control points
			&ctrlPoints_Right[0][0]);			// array of control points
		
		// Enable the evaluator
		glEnable(GL_MAP1_VERTEX_3);
		
		// Map a grid of 100 points from 0 to 100
		glMapGrid1d(100,0.0,100.0);
		
		// Evaluate the grid, using lines
		glEvalMesh1(GL_LINE,0,100);
		
		glMap1f(GL_MAP1_VERTEX_3, 0.0f, 100.0f, 3, nNumPoints, &ctrlPoints_Left[0][0]);			
		
		// Enable the evaluator
		glEnable(GL_MAP1_VERTEX_3);
		
		// Use higher level functions to map to a grid, then evaluate the
		// entire thing.
		
		// Map a grid of 100 points from 0 to 100
		glMapGrid1d(100,0.0,100.0);
		
		// Evaluate the grid, using lines
		glEvalMesh1(GL_LINE,0,100);
		//bezier end
	}
	if(iFillIN == iFillIN_Single)
	{
		glShadeModel(GL_FLAT);
		glMap1f(GL_MAP1_VERTEX_3,0.0f,100.0f,3,	nNumPoints,	&ctrlPoints_Right[0][0]);
		
		glEnable(GL_MAP1_VERTEX_3);	
		
		glBegin(GL_POLYGON);
		
		glColor3f(0.0,1.0,1.0);
		glVertex3f(0.0f,70.0f,0.0f);
		for( i = 0; i <= 100; i++)
		{			
			glEvalCoord1f((GLfloat) i); 
		}
		glVertex3f(0.0f,-70.0f,0.0f);
		glEnd(); 
		glMap1f(GL_MAP1_VERTEX_3,	
			0.0f,						
			100.0f,						
			3,							
			nNumPoints,				
			&ctrlPoints_Left[0][0]);
		glEnable(GL_MAP1_VERTEX_3);	
		
		glBegin(GL_POLYGON);
		
		glColor3f(0.0,1.0,1.0);
		glVertex3f(0.0f,70.0f,0.0f);
		for( i = 0; i <= 100; i++)
		{			
			glEvalCoord1f((GLfloat) i); 
		}
		glVertex3f(0.0f,-70.0f,0.0f);
		glEnd(); 
	}
	if(iFillIN == iFillIN_Transition)
	{
		glShadeModel(GL_SMOOTH);
		glMap1f(GL_MAP1_VERTEX_3,	
			0.0f,						
			100.0f,						
			3,							
			nNumPoints,				
			&ctrlPoints_Right[0][0]);
		
		glEnable(GL_MAP1_VERTEX_3);	
		
		glBegin(GL_POLYGON);
		glColor3f(0.0,1.0,1.0);
		glVertex3f(0.0f,70.0f,0.0f);
		for( i = 0; i <= 100; i++)
		{			
			glColor3f(i/100,i/150,i/200);
			glEvalCoord1f((GLfloat) i); 
		}
		glColor3f(1.0,1.0,1.0);
		glVertex3f(0.0f,-70.0f,0.0f);
		glEnd(); 
		glMap1f(GL_MAP1_VERTEX_3,	
			0.0f,						
			100.0f,						
			3,							
			nNumPoints,				
			&ctrlPoints_Left[0][0]);
			glEnable(GL_MAP1_VERTEX_3);	
		
		glBegin(GL_POLYGON);

		glColor3f(1.0,0.0,0.5);
		glVertex3f(0.0f,70.0f,0.0f);
		for( i = 0; i <= 100; i++)
		{			
			glColor3f(i/100,i/150,(i+100)/200);
			glEvalCoord1f((GLfloat) i); 
		}
		glColor3f(0.0,0.5,0.5);
		glVertex3f(0.0f,-70.0f,0.0f);
		glEnd(); 
	}

	// Restore transformations
	glPopMatrix();
	
	// Flush drawing commands
	glutSwapBuffers();
}

void SetupRC()
{
	// Black background
	glClearColor(0.0f, 0.0f, 0.0f, 1.0f );
	
	// Set drawing color 顏色
	glColor3f(0.0f, 1.0f, 0.0f);

	//填充
	glShadeModel(GL_SMOOTH);
	
}

void SpecialKeys(int key, int x, int y)
{
	if(key == GLUT_KEY_UP)
		xRot-= 5.0f;
	
	if(key == GLUT_KEY_DOWN)
		xRot += 5.0f;
	
	if(key == GLUT_KEY_LEFT)
		yRot -= 5.0f;
	
	if(key == GLUT_KEY_RIGHT)
		yRot += 5.0f;
	
	if(key > 356.0f)
		xRot = 0.0f;
	
	if(key < -1.0f)
		xRot = 355.0f;
	
	if(key > 356.0f)
		yRot = 0.0f;
	
	if(key < -1.0f)
		yRot = 355.0f;
	
	// Refresh the Window
	glutPostRedisplay();
}

void ChangeSize(int w, int h)
{
	GLfloat nRange = 100.0f;
	
	// Prevent a divide by zero
	if(h == 0)
		h = 1;
	
	// Set Viewport to window dimensions
    glViewport(0, 0, w, h);
	
	// Reset projection matrix stack
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	
	// Establish clipping volume (left, right, bottom, top, near, far)
    if (w <= h) 
		glOrtho (-nRange, nRange, -nRange*h/w, nRange*h/w, -nRange, nRange);
    else 
		glOrtho (-nRange*w/h, nRange*w/h, -nRange, nRange, -nRange, nRange);
	
	// Reset Model view matrix stack
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
}

int main(int argc, char* argv[])
{
	int nLinesWidthMenu;//線寬
	int nLinesColorMenu;//顏色
	int nLinesFillInMenu;//填充
	int nMainMenu;//主菜單

	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
	glutCreateWindow("馮奐(小組)的作業");
	
	// Create the Menu
	//線寬
	nLinesWidthMenu = glutCreateMenu(ProcessMenu);
	glutAddMenuEntry("一般",1);
	glutAddMenuEntry("中",2);
	glutAddMenuEntry("粗",3);

	//顏色
	nLinesColorMenu = glutCreateMenu(ProcessMenu);
	glutAddMenuEntry("紅",4);
	glutAddMenuEntry("綠",5);
	glutAddMenuEntry("白",6);
	glutAddMenuEntry("黃",7);
	glutAddMenuEntry("藍",8);

	//填充
	nLinesFillInMenu = glutCreateMenu(ProcessMenu);
	glutAddMenuEntry("不填充",9);
	glutAddMenuEntry("單色填充",10);
	glutAddMenuEntry("顏色過渡",11);
	
	//主菜單
	nMainMenu = glutCreateMenu(ProcessMenu);
	glutAddSubMenu("線寬", nLinesWidthMenu);
	glutAddSubMenu("顏色", nLinesColorMenu);
	glutAddSubMenu("填充", nLinesFillInMenu);
	glutAttachMenu(GLUT_RIGHT_BUTTON);//右鍵彈出菜單
	
	glutReshapeFunc(ChangeSize);
	glutSpecialFunc(SpecialKeys);
	glutDisplayFunc(RenderScene);
	SetupRC();
	glutMainLoop();

	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久久久影视| 日韩视频一区在线观看| 久久精品免费看| 最新国产の精品合集bt伙计| 7777精品伊人久久久大香线蕉的| 中文字幕中文字幕在线一区| 亚洲成av人片在线观看无码| 成熟亚洲日本毛茸茸凸凹| 日韩视频在线永久播放| 婷婷综合五月天| 日韩免费福利电影在线观看| 亚洲不卡一区二区三区| 欧美日韩免费电影| 天天射综合影视| 国产精品一二三四区| 91麻豆精品国产91久久久久| 一本大道av伊人久久综合| 国产91精品露脸国语对白| 日本美女一区二区| 日韩成人免费在线| 偷窥少妇高潮呻吟av久久免费| 一区二区三区精品| 亚洲丝袜美腿综合| 中文字幕制服丝袜一区二区三区 | 欧美天天综合网| 99精品久久99久久久久| 成人中文字幕合集| 国产成人99久久亚洲综合精品| 麻豆精品久久精品色综合| 亚洲一二三区视频在线观看| 一区二区高清在线| 日本精品一区二区三区高清| 99久久婷婷国产综合精品| 99国产精品99久久久久久| 99国产精品99久久久久久| 日韩av电影天堂| 美女脱光内衣内裤视频久久网站| 亚洲国产成人91porn| 亚洲线精品一区二区三区八戒| 亚洲女同女同女同女同女同69| 欧美久久一二区| 精品欧美一区二区久久| 久久精子c满五个校花| 中文字幕欧美激情| 免费成人在线影院| 国产乱码精品一区二区三区忘忧草| 国产精品一区二区久久精品爱涩| 国产成人av一区二区| 91免费看片在线观看| 欧美日韩1区2区| 91福利国产精品| 91香蕉视频污| 8x福利精品第一导航| 欧美网站一区二区| 欧美在线不卡视频| 成人av在线资源网站| 精品久久久久香蕉网| 国产亲近乱来精品视频| 亚洲福利一区二区| 麻豆精品视频在线观看免费| 成人免费高清视频在线观看| 成人av电影在线播放| 精品视频免费看| 国产亚洲一区二区三区四区| 亚洲国产日产av| 成人一区二区三区视频在线观看| 在线影院国内精品| 欧美在线观看视频在线| 久久久久久久久久美女| 亚洲色欲色欲www在线观看| 日本视频中文字幕一区二区三区| 免费观看在线色综合| 欧美一区二区三区四区高清| www.欧美日韩国产在线| 一区二区三区欧美视频| 欧美日韩一区在线| 亚洲免费av观看| 久久久蜜桃精品| 99久久精品免费精品国产| 日韩精品一级二级| 亚洲自拍偷拍网站| 久久亚区不卡日本| 国模冰冰炮一区二区| 91浏览器在线视频| 美女视频黄久久| 色狠狠综合天天综合综合| 中文字幕精品综合| 91色视频在线| 国产一区二区三区久久悠悠色av| 亚洲大片在线观看| 日本在线不卡一区| 国产91丝袜在线播放0| 色综合久久66| 综合电影一区二区三区 | 国产欧美一区二区精品性色超碰| 日韩免费性生活视频播放| 日韩区在线观看| 国产亚洲视频系列| 日韩毛片一二三区| 青青草国产成人av片免费| 蜜桃精品视频在线| 国产成人免费在线观看不卡| 国产精品一区二区在线观看不卡| 91麻豆自制传媒国产之光| 成人免费视频播放| 欧洲精品一区二区| 美女网站在线免费欧美精品| 成a人片亚洲日本久久| 肉丝袜脚交视频一区二区| 亚洲午夜视频在线观看| 久久天堂av综合合色蜜桃网| 久久久青草青青国产亚洲免观| 欧美精彩视频一区二区三区| 亚洲人成人一区二区在线观看 | 麻豆精品视频在线观看免费| 亚洲成人动漫在线观看| 国产自产视频一区二区三区| av一区二区三区在线| 91精品国产福利| 亚洲女女做受ⅹxx高潮| 日韩欧美另类在线| 93久久精品日日躁夜夜躁欧美| 欧美一级欧美三级在线观看| 亚洲在线成人精品| 欧美日韩极品在线观看一区| 日本一二三四高清不卡| 午夜精品一区二区三区电影天堂 | 亚洲精品水蜜桃| 国产一区二区三区免费看| 欧美视频在线播放| 国产精品天天看| 美女网站视频久久| 日本精品一级二级| 亚洲免费高清视频在线| 丁香六月久久综合狠狠色| 日韩精品最新网址| 国内精品在线播放| 国产亲近乱来精品视频| 国模套图日韩精品一区二区| 亚洲午夜精品17c| 色就色 综合激情| 国产精品理论片在线观看| 国产成人综合网站| 久久精品夜色噜噜亚洲a∨| 麻豆精品一区二区三区| 欧美色成人综合| 中文字幕av不卡| 综合久久国产九一剧情麻豆| 极品少妇一区二区| 精品国产乱码久久久久久夜甘婷婷| 亚洲国产精品成人综合色在线婷婷| 国产精品一区专区| 欧美成人猛片aaaaaaa| 国产在线不卡视频| 亚洲色图欧美激情| 精品国产成人在线影院 | 欧美日韩亚洲高清一区二区| 日本一区中文字幕| 亚洲综合色视频| 日本一区二区久久| 欧美日韩高清影院| 日本aⅴ精品一区二区三区| 国产精品区一区二区三| 成人午夜视频在线观看| 亚洲一区二区在线观看视频 | 欧美激情综合在线| 日本高清不卡aⅴ免费网站| 亚洲一区在线电影| 国产亚洲福利社区一区| 欧美精品色一区二区三区| 亚洲手机成人高清视频| 欧美麻豆精品久久久久久| 国产成人午夜99999| 亚洲欧美日韩久久| 日韩精品一区二区三区中文精品| 黑人巨大精品欧美黑白配亚洲| 欧美亚洲精品一区| 奇米影视一区二区三区| 国产精品第五页| 日韩精品一区二区在线| 欧美久久一二三四区| 狠狠色丁香婷婷综合| 欧美变态口味重另类| 欧美午夜电影网| 色94色欧美sute亚洲线路二| 国产成人啪午夜精品网站男同| 日本在线不卡一区| 石原莉奈在线亚洲二区| 色综合天天综合狠狠| 国产精品久线观看视频| 亚洲精品在线观看视频| 免费看欧美美女黄的网站| 欧美一区二区视频免费观看| 91丨九色porny丨蝌蚪| 成人成人成人在线视频| 91网站在线播放| 欧美一区二区在线免费播放| 91精品国产高清一区二区三区 | 亚洲视频一区在线| 欧美激情中文字幕|