cocos2d x 中的一些數學函式

2021-09-30 11:16:43 字數 1989 閱讀 2424

**:

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弧度

線段相交的檢測:

ccplineintersect(p1, p2, p3, p4, &s, &t); 

// 得到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中的一些概念

cocos2d x中有很多概念,下面就對這些概念做一下總結 導演類 導演類ccdirector是cocos2d x中乙個非常重要的類,它是乙個抽象類,用於管理場景物件,採用單例設計模式,在整個工程中只有乙個例項物件。由於是單例模式能夠儲存一致的配置資訊,便於管理場景物件 主要完成的工作如下 初始化遊...

cocos2dx的一些效果

綻開效果 1.animalnode setscale 0.1 2.animalnode setopacity 0 3.local action1 cc.spawn create cc.scaleto create 0.15,2.0 cc.fadeto create 0.15,255 4.local ...

cocos2dx 的一些巨集的作用

ns cc begin cocos2d命名空間開始 ns cc end cocos2d命名空間結束 using ns cc 宣告cocos2d命名空間 cc synthesize readonly vartype,varname,funname 宣告乙個成員變數以及get funname函式,沒有s...