search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

glOrtho和glFrustumf相關參數計算 – jashliao部落格

glOrtho和glFrustumf相關參數計算

 

最近在看Android的OpenGL ES,所以撰寫了這個程式,歡迎有興趣的同好,一起來C/P一下。

 

#include <iostream>
#include <cmath>
using namespace std;
////////////////////////////////////
double ToRadians (double d);//度轉徑度
double ToDegrees (double r);//徑度轉度
float g_fltWidth=640;//螢幕寬度
float g_fltHight=480;//螢幕��度
float g_fltAspectRatio;//寬��比
float g_fltFieldOfView = 45.0; //視野角度
float g_fltNear = 0.1; //近端
float g_fltFar = 1000; //遠端
float g_fltSize;//glFrustumf函數參數
float g_fltOrthoRange = 420.0f;//空間大小
///////////////////////////////////
double ToRadians (double d)//度轉徑度
{
return d * M_PI / 180;
}
double ToDegrees (double r)//徑度轉度
{
return r * 180/ M_PI;
}
int main()
{
//////////////////////////////
if(g_fltWidth>g_fltHight)
{
g_fltAspectRatio=g_fltWidth/g_fltHight;
}
else
{
g_fltAspectRatio=g_fltHight/g_fltWidth;
}
///////////////////////////////
g_fltSize=g_fltNear * tanf(ToRadians(g_fltFieldOfView ) / 2.0);
cout <<"Width="<<g_fltWidth<< endl;
cout<<"Hight="<<g_fltHight<< endl;
cout<<"Aspect Ratio="<<g_fltAspectRatio<< endl;
cout<<"Field Of View="<<g_fltFieldOfView<<" Degrees"<<endl;
cout<<"glFrustumf Near="<<g_fltNear<< endl;
cout<<"glFrustumf Far="<<g_fltFar<< endl;
cout<<"glFrustumf Left="<<-1*g_fltSize<< endl;
cout<<"glFrustumf Right="<<g_fltSize<< endl;
cout<<"glFrustumf Bottom="<<-1*g_fltSize/g_fltAspectRatio<< endl;
cout<<"glFrustumf Top="<<g_fltSize/g_fltAspectRatio<< endl;
//glFrustumf(-g_fltSize, g_fltSize, -g_fltSize/g_fltAspectRatio, g_fltSize/g_fltAspectRatio, g_fltNear, g_fltFar);
cout<<"glOrtho Range"<<g_fltOrthoRange<< endl;
cout<<"glOrtho Near="<<-1*g_fltOrthoRange*2<< endl;
cout<<"glOrtho Far="<<g_fltOrthoRange*2<< endl;
cout<<"glOrtho Left="<<-1*g_fltOrthoRange<< endl;
cout<<"glOrtho Right="<<g_fltOrthoRange<< endl;
cout<<"glOrtho Bottom="<<-1*g_fltOrthoRange*g_fltAspectRatio<< endl;
cout<<"glOrtho Top="<<g_fltOrthoRange*g_fltAspectRatio<< endl;
//void glOrtho(left,right,bottom,top,nearVal,farVal);
/*
    if (w <= h)
		glOrtho (-nRange, nRange, -nRange*h/w, nRange*h/w, -nRange*2, nRange*2);
    else
		glOrtho (-nRange*w/h, nRange*w/h, -nRange, nRange, -nRange*2, nRange*2);
    */
cout << "Hello world!" << endl;
return 0;
}

 



熱門推薦

本文由 jashliaoeuwordpress 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦