Cocos2d x 中常用數學函式

2021-06-20 05:21:27 字數 1833 閱讀 7675

數學函式:

ccp(x, y); // 以座標x,y建立乙個向量

ccpfromsize(s); // 以size s的width為x,height為y建立乙個向量  

ccpoint的加減乘除運算運算

ccpadd(v1, v2); // 等價 ccp(v1.x+v2.x, v1.y+v2.y);  

ccpsub(v1, v2); // 等價 ccp(v1.x-v2.x, v1.y-v2.y);  

ccpneg(v) // 等價 ccp(-v.x, -v.y);  

ccpmult(v, s); //等價 ccp(v.x * s, v.y * s); s是個浮點數

取中點:

ccpmidpoint(v1, v2); // 等價 ccp( (v1.x + v2.x)/2, (v1.y + v2.y)/2 );  

點乘、叉乘、投影:

ccpdot(v1, v2); // 等價 v1.x * v2.x + v1.y * v2.y;  

ccpcross(v1, v2); // 等價 v1.x * v2.y - v1.y * v2.x;  

ccpproject(v1, v2) // 返回的是向量v1在向量v2上的投影向量 

求長度、距離和各自的平方值:

ccplength(v) // 返回向量v的長度,即點v到原點的距離  

ccplengthsq(v) // 返回向量v的長度的平方,即點v到原點的距離的平方  

ccpdistance(v1, v2) // 返回點v1到點v2的距離  

ccpdistancesq(v1, v2) // 返回點v1到點v2的距離的平方  

ccpnormalize(v) // 返回v的標準化向量,就是長度為1

旋轉、逆時針90度、順時針90度:

ccprotate(v1, v2); // 向量v1旋轉過向量v2的角度並且乘上向量v2的長度。當v2是乙個長度為1的標準向量時就是正常的旋轉了,可以配套地用ccpforangle  

ccpperp(v); // 等價於 ccp(-v.y, v.x); (因為opengl座標系是左下角為原點,所以向量v是逆時針旋轉90度)  

ccprperp(v); // 等價於 ccp(v.y, -v.x); 順時針旋轉90度 

ccpforangle(a); // 返回乙個角度為弧度a的標準向量  

ccptoangle(v); // 返回向量v的弧度   

ccpangle(a, b); // 返回a,b向量指示角度的差的弧度值  

ccprotatebyangle(v, pivot, angle) // 返回向量v以pivot為旋轉軸點,按逆時針方向旋轉angle弧度

線段相交的檢測:

// 得到s和t可以通過 p1 + s * (p2 - p1) 或 p3 + t * (p4 - p3) 求得交點。  

ccpsegmentintersect(a, b c, d) // 返回線段a-b和線段c-d是否相交  

ccpintersectpoint(a, b, c, d) // 返回線段a-b和線段c-d的交點 

其他有用的:

cc_radians_to_degrees(a);  // 弧度轉角度  

cc_degrees_to_radians(a);  // 角度轉弧度  

ccrandom_0_1();     // 產生0到1之間的隨機浮點數  

ccrandom_minus1_1(); // 產生-1到1之間的隨機浮點數  

COCOS2D X常用巨集

控制台輸出 define cclog 控制台警告輸出 define cclogwarn 控制台資訊輸出 define ccloginfo 交換 x,y的值 define cc swap x,y 生成乙個 1 到 1的隨機數 define ccrandom minus1 1 生成乙個 0 到 1的隨機...

cocos2dx 幾種常用action

1.moveto和moveby cc.moveto是 移動到這裡 而cc.moveby則是 相對於之前點再移動 通俗一點就是說這裡需要兩個座標pos1 x1,y1 pos2 x2,y2 例如 actionmoveleft cc.moveby create 1,cc.p 3,0 相對於原來的位置在1秒...

cocos2d x 中的一些數學函式

ccp x,y 以座標x,y建立乙個向量 ccpfromsize s 以size s的width為x,height為y建立乙個向量 ccpoint的加減乘除運算運算 ccpadd v1,v2 等價 ccp v1.x v2.x,v1.y v2.y ccpsub v1,v2 等價 ccp v1.x v2...