//-(cgpoint) getoglpos:(cgpoint)winpos //
別人原始碼,摘來分享,哈哈哈
cgpoint startlocation;
-(void ) touchesbegan:(nsset *)touches withevent:(uievent *)event
float pv[16];
int vp[4];
vp[0] = viewport.origin.x;
vp[1] = viewport.origin.y;
vp[2] = viewport.size.width;
vp[3] = viewport.size.height;
float result[3];
//gives us camera position (near plan)
glhunprojectf(startlocation.x,startlocation.y, 0, mov, pv, vp, result);
fpoint3 start;
start.x = result[0];
start.y = result[1];
start.z = result[2];
//far plane
glhunprojectf(startlocation.x,startlocation.y, 1, mov, pv, vp, result);
fpoint3 end;
end.x = result[0];
end.y = result[1];
end.z = result[2];
//射線求交點(與地面(x, y, 0))
getcrosspoint(start, end,wordstart);
//。。。。
wordend.x=wordstart.x;
wordend.y=wordstart.y;
wordend.z=wordstart.z; }
int glhunprojectf(float winx,float winy,float winz,float *modelview, float *projection,int *viewport, float *objectcoordinate)
//用來求取直線和地圖平面的交點
bool getcrosspoint(fpoint3 startpoint, fpoint3 endpoint,fpoint3 &crosspoint )
關於 0x3f3f3f3f 的問題
0x3f3f3f3f是乙個很有用的數值,它是滿足以下兩個條件的最大整數。1 整數的兩倍不超過 0x7f7f7f7f,即int能表示的最大正整數。2 整數的每8位 每個位元組 都是相同的。我們在程式設計中經常需要使用 memset a,val,sizeof a 初始化乙個陣列a,該語句把數值 val ...
0x3f3f3f3f(無窮大數)
一般定義無窮大數都是inf 99999999,或者0x7f ff ff ff,但是有的時候inf過大,雖然保證了沒有數超過它,但是在需要加上乙個數的時候,inf a可能會導致溢位,最終變成乙個負數。而0x3f3f3f3f的數量級也1e9的,一般題不會給超過1e9的數 在把它當成無窮大的時候,兩個0x...
Python3物件導向 3 異常(3)異常作用
當丟擲異常時,看起來好像立即停止了程式的執行。丟擲異常之後的所有 都不會執行,除非處理了這一異常,程式將會退出並給出錯誤資訊。def no return print i am about to raise an exception raise exception this is always rai...