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

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

?? testmain.cpp

?? XMathLib是一個通用的3D圖形數學庫。 其中包含兩個部分: XMathLib和XGeomLib。分別處理數學和幾何運算。 數學部分包含向量、矩陣、四元數的運算。以及其它的運算。 幾何部分
?? CPP
字號:
#include <iostream>
using namespace std;


#include "XMathLib.h"
#include "XGeomLib.h"
#include "XMTrace.h"
using namespace XMathLib;
using namespace XGeomLib;

//#define _CONSOLE_TEST_

#ifdef  _CONSOLE_TEST_
int main()
{
	XVector v1(4,4,1,0);
    
	cout<<"V1: "<<v1<<endl;
    XVector v2(2,0,0);

	float mdata1[16] = 
	{
	  -1 ,  1 ,  0 , 0,
	  -1 ,  0 ,  1 , 0,
	  -1 ,  0 , -2 , 0,
	  0 ,  0 ,  0 , 1,
	};

	float mdata2[16] = 
	{
	  3,1,1,1,
	  0,4,0,2,
	  2,0,1,1,
	  0,1,0,2,
	};

	XMatrix m1(mdata1);
	XMatrix m2(mdata2);

	XMatrix m3(1);

	cout<<"M1"<<endl<<m1;
	cout<<"M2"<<endl<<m2;

	bool b = XMatrix_Inv(m2,m3);
	if(!b)
		cout<<"M2為奇異矩陣"<<endl;
	cout<<"M3 = Inv(M2) "<<endl<<m3;
    cout<<"M1 X M3 "<<endl<<m2*m3<<endl;

	v2 = v1 * m1;
	cout<<"Angle to RAD 90: "<<XM_Deg2Rad(90.f)/XM_PI <<" * pi "<<endl;
	cout<<"Arc Cos Degree  45: "<<XM_ACosD(0.707f)<<endl;

	XMatrix m4;
	XVector eye(1,1,1);
	XVector at (2,1,1);
	XVector up (0,1,0);
	//XM_Rotate(m4,v4,15);

	XM_LookAt(m4,eye,at,up);
	cout<<m4<<endl;

	float fp = 0;
	XPlan plan(1,0,0,2);
	//XVector vplan = plan;
	//cout<<endl<<"VPlan : "<<vplan<<endl;
	//cout<<vplan*plan<<endl;

    cout<<"測試四元數"<<endl;

    XMatrix mRotX;
    XMathLib::XM_RotateY(mRotX,40.0);
    cout<<mRotX<<endl;

	XVector mV(21.3,1.9,29.,1);
    cout<<mV*mRotX<<endl;

    XQuaternion r(XVector(0,1,0,1),40.0);

    cout<<"Matrix build by quaternion"<<endl;
    r.toMatrix(mRotX);
    cout<<mRotX<<endl;
    XVector mV2(21.3,1.9,29.,1);
    cout<<r.Rotate(mV2)<<endl;

    XRay ray;

	ray.m_Dir = XVector3D(0,-1,0.5);
	ray.m_Point = XVector3D(0,2,0);

	//XPlan plan;
	plan.A = 0;
	plan.B = 1;
	plan.C = 0;
	plan.D = 1;

    XPoint ptOut;
	float tinter ;
	if( false == InterSection(ray,plan,ptOut,tinter) )
	{
		cout<<"平面和射線不相交"<<endl;
        
	}
	else
	{
        cout<<"平面和射線相交"<<endl;
		cout<<tinter<<endl;
		cout<<plan * ptOut<<endl;
	}
	
	return 0;
}

#else

#pragma comment(lib,"opengl32.lib")
#pragma comment(lib,"glu32.lib")
#pragma comment(lib,"glut32.lib")
#include <windows.h>
#include <GL\glut.h>
bool g_gamemode;       // GLUT GameMode ON/OFF
bool g_fullscreen;     // Fullscreen Mode ON/OFF (When g_gamemode Is OFF)


// Our GL Specific Initializations
bool init(void)
{
	glShadeModel(GL_SMOOTH);							// Enable Smooth Shading
	glClearColor(0.0f, 0.0f, 0.0f, 0.5f);				// Black Background
	glClearDepth(1.0f);									// Depth Buffer Setup
	glEnable(GL_DEPTH_TEST);							// Enables Depth Testing
	glDepthFunc(GL_LEQUAL);								// The Type Of Depth Testing To Do
	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);	// Really Nice Perspective Calculations
	return true;
}

// Our Rendering Is Done Here
void render(void)   
{
	XRay ray;
	ray.m_Dir = XVector3D(0,0,1);
	ray.m_Point = XVector3D(0,0,-1);

	XTriangle tri;
	tri.m_points[0] = XVector3D(-1,0,0);
	tri.m_points[1] = XVector3D(1,-1,0);
	tri.m_points[2] = XVector3D(1,1,0);

	XPoint p;
	float t,u,v;
	bool isInter =  InterSection(ray,tri,p,t,u,v);

	p=XVector3D(1,1,1);

	isInter =  InterSection(ray,tri,p,t);

    


	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	// Clear Screen And Depth Buffer
	glLoadIdentity();									// Reset The Current Modelview Matrix


	// Swap The Buffers To Become Our Rendering Visible
	glutSwapBuffers ( );
}

// Our Reshaping Handler (Required Even In Fullscreen-Only Modes)
void reshape(int w, int h)
{
	glViewport(0, 0, w, h);
	glMatrixMode(GL_PROJECTION);     // Select The Projection Matrix
	glLoadIdentity();                // Reset The Projection Matrix
	// Calculate The Aspect Ratio And Set The Clipping Volume
	if (h == 0) h = 1;
	gluPerspective(80, (float)w/(float)h, 1.0, 5000.0);
	glMatrixMode(GL_MODELVIEW);      // Select The Modelview Matrix
	glLoadIdentity();                // Reset The Modelview Matrix
}

// Our Keyboard Handler (Normal Keys)
void keyboard(unsigned char key, int x, int y)
{
	switch (key) {
		case 27:        // When Escape Is Pressed...
			exit(0);    // Exit The Program
			break;          // Ready For Next Case
		default:        // Now Wrap It Up
			break;
	}
}

// Our Keyboard Handler For Special Keys (Like Arrow Keys And Function Keys)
void special_keys(int a_keys, int x, int y)
{
	switch (a_keys) {
		case GLUT_KEY_F1:
			// We Can Switch Between Windowed Mode And Fullscreen Mode Only
			if (!g_gamemode) {
				g_fullscreen = !g_fullscreen;       // Toggle g_fullscreen Flag
				if (g_fullscreen) glutFullScreen(); // We Went In Fullscreen Mode
				else glutReshapeWindow(500, 500);   // We Went In Windowed Mode
			}
			break;
		default:
			break;
	}
}

// Ask The User If He Wish To Enter GameMode Or Not
void ask_gamemode()
{
	int answer;
	// Use Windows MessageBox To Ask The User For Game Or Windowed Mode
	answer = MessageBox(NULL, "Do you want to enter game mode?", "Question",
		MB_ICONQUESTION | MB_YESNO);
	g_gamemode = (answer == IDYES);
	// If Not Game Mode Selected, Use Windowed Mode (User Can Change That With F1)
	g_fullscreen = false; 
}

// Main Function For Bringing It All Together.
int main(int argc, char** argv)
{
	ask_gamemode();                                  // Ask For Fullscreen Mode
	glutInit(&argc, argv);                           // GLUT Initializtion
	glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);     // Display Mode (Rgb And Double Buffered)
	if (g_gamemode) {
		glutGameModeString("640x480:16");            // Select The 640x480 In 16bpp Mode
		if (glutGameModeGet(GLUT_GAME_MODE_POSSIBLE))
			glutEnterGameMode();                     // Enter Full Screen
		else g_gamemode = false;                     // Cannot Enter Game Mode, Switch To Windowed
	}
	if (!g_gamemode) {
		glutInitWindowSize(500, 500);                // Window Size If We Start In Windowed Mode
		glutCreateWindow("NeHe's OpenGL Framework"); // Window Title 
	}
	init();                                          // Our Initialization
	glutDisplayFunc(render);                         // Register The Display Function
	glutReshapeFunc(reshape);                        // Register The Reshape Handler
	glutKeyboardFunc(keyboard);                      // Register The Keyboard Handler
	glutSpecialFunc(special_keys);                   // Register Special Keys Handler

	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	//glOrtho(100,200,100,200,100,200);
	gluPerspective(60,3/4.,-50,100);
	double mat[16];
	glGetDoublev(GL_MODELVIEW_MATRIX,mat);
	for(int i = 0 ; i < 4; i ++)
	{
		for(int j = 0 ; j < 4 ; j ++)
		{
			cout<<mat[i * 4 + j]<<"\t";
		}
		cout<<endl;
	}  

	XMatrix matOut;
	//XM_Ortho3D(matOut,100,200,200,100,100,200);
	XM_Perspective(matOut,60,3/4.,-50,100);
	cout<<matOut<<endl;
	glutMainLoop();                                  // Go To GLUT Main Loop
	return 0;
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩免费视频线观看| 日本视频免费一区| 国产欧美日韩视频一区二区| 精品久久久久一区| 久久中文娱乐网| 欧美va在线播放| 久久免费电影网| 国产精品久久午夜| 一区二区中文视频| 亚洲精品美腿丝袜| 午夜欧美2019年伦理| 亚洲国产一二三| 午夜久久久久久久久| 日韩精品1区2区3区| 美女高潮久久久| 国产乱码精品一区二区三区五月婷| 国产在线麻豆精品观看| 国产黄色精品视频| 99久久精品一区二区| 日本丶国产丶欧美色综合| 在线免费不卡电影| 91.麻豆视频| 精品国产乱码久久久久久久| 中文字幕久久午夜不卡| 亚洲男人电影天堂| 五月婷婷久久综合| 久久精品国产一区二区| 国产精品99久| 91视频精品在这里| 欧美精品成人一区二区三区四区| 精品日产卡一卡二卡麻豆| 久久久噜噜噜久噜久久综合| 亚洲色图一区二区三区| 亚洲图片自拍偷拍| 久久精品国产精品青草| 成人av在线影院| 欧美自拍偷拍一区| 欧美mv日韩mv| 国产精品福利电影一区二区三区四区| 亚洲激情av在线| 美日韩一区二区三区| 成人午夜av电影| 欧美人与性动xxxx| 久久亚洲精品国产精品紫薇| 亚洲丝袜另类动漫二区| 日韩激情视频在线观看| 成人在线视频一区| 欧美伦理影视网| 中文字幕乱码久久午夜不卡| 99久久精品国产毛片| 欧美日韩精品电影| 国产亚洲欧美激情| 亚洲一二三四区不卡| 国产美女在线精品| 欧美日韩一级片在线观看| 日本一区二区三区国色天香 | 久久免费的精品国产v∧| 亚洲精品中文字幕在线观看| 久久成人久久鬼色| 91影院在线观看| 26uuu亚洲综合色| 亚洲国产精品一区二区久久恐怖片| 国产一区二区精品久久| 欧美视频一区二| 中文字幕+乱码+中文字幕一区| 日日夜夜免费精品| 色丁香久综合在线久综合在线观看| 久久久三级国产网站| 日韩精品电影在线观看| 色综合久久中文字幕| 久久综合九色欧美综合狠狠| 亚洲二区在线视频| 9i看片成人免费高清| 精品粉嫩aⅴ一区二区三区四区| 亚洲一区成人在线| 91日韩在线专区| 中文字幕精品一区| 国产一区免费电影| 日韩一级黄色片| 香蕉成人伊视频在线观看| 91一区二区在线| 国产午夜精品久久久久久久 | 国产成人在线观看免费网站| 91精品欧美综合在线观看最新| 亚洲人成精品久久久久| 国产·精品毛片| 久久综合狠狠综合久久激情| 久久精品国产澳门| 日韩精品中文字幕一区| 日韩精品一二三| 56国语精品自产拍在线观看| 亚洲激情在线激情| 色综合天天综合网天天狠天天| 国产精品人妖ts系列视频| 国产超碰在线一区| 欧美精彩视频一区二区三区| 激情文学综合网| 日韩欧美亚洲另类制服综合在线| 日韩一区欧美二区| 555夜色666亚洲国产免| 亚洲成人777| 欧美老女人第四色| 亚洲第一精品在线| 91精品国产综合久久精品图片| 夜夜嗨av一区二区三区网页| 91色在线porny| 一区二区三区自拍| 欧美亚洲一区二区在线| 亚洲精品水蜜桃| 亚洲色欲色欲www| 91麻豆免费视频| 亚洲制服丝袜av| 欧美一区二区三区免费| 紧缚奴在线一区二区三区| 亚洲精品在线观看网站| 国产精选一区二区三区| 亚洲国产岛国毛片在线| 一本色道久久综合精品竹菊| 亚洲国产精品欧美一二99| 9191久久久久久久久久久| 日本不卡一区二区| 欧美v日韩v国产v| 成人中文字幕电影| 一区二区三区四区视频精品免费| 欧美日韩精品久久久| 久久99国产精品久久99| 中文子幕无线码一区tr| 欧美曰成人黄网| 秋霞电影一区二区| 欧美国产日产图区| 欧洲一区二区av| 美国精品在线观看| 国产精品第一页第二页第三页| 91精彩视频在线| 日本不卡的三区四区五区| 国产日韩高清在线| 色天使色偷偷av一区二区| 日韩精品一二区| 欧美激情综合五月色丁香小说| 色老汉av一区二区三区| 美女国产一区二区三区| 国产精品不卡在线| 欧美一区二区三区啪啪| 成人理论电影网| 日本网站在线观看一区二区三区| 久久精品亚洲精品国产欧美 | 91精品国产91久久综合桃花 | 这里只有精品免费| 国产高清无密码一区二区三区| 亚洲一区二区三区在线播放| 欧美va在线播放| 91麻豆国产在线观看| 蜜桃传媒麻豆第一区在线观看| 中文字幕欧美日本乱码一线二线| 欧美网站大全在线观看| 国产精品白丝av| 丝瓜av网站精品一区二区| 中日韩免费视频中文字幕| 欧美喷水一区二区| 成人精品视频网站| 欧美电影一区二区三区| av中文字幕在线不卡| 日韩1区2区日韩1区2区| 亚洲天堂久久久久久久| 久久影院午夜片一区| 欧美美女喷水视频| 99热国产精品| 国产成人一区二区精品非洲| 日韩电影在线观看一区| 亚洲欧美一区二区在线观看| 欧美成人伊人久久综合网| 欧美网站大全在线观看| 99久久精品免费看| 国产高清精品久久久久| 日本中文在线一区| 亚洲午夜电影在线观看| 中文字幕一区日韩精品欧美| 久久综合久久综合久久| 51精品秘密在线观看| 色94色欧美sute亚洲13| 成人app软件下载大全免费| 国产在线不卡一区| 日本在线播放一区二区三区| 亚洲主播在线观看| 亚洲色图清纯唯美| 国产精品久久久久毛片软件| 久久久精品天堂| 精品伦理精品一区| 日韩一区二区中文字幕| 欧美日韩国产另类不卡| 欧美在线一区二区三区| 97se亚洲国产综合在线| 国产成人免费视| 国产高清精品久久久久| 国产一二精品视频| 国产精品自产自拍| 国产一区二区在线视频| 精品一区二区三区在线观看| 老司机精品视频导航| 蜜臀av性久久久久av蜜臀妖精|