cocos2d-x 3.x 弧度轉角度(學習筆記)

關於弧度轉角度問題


注:在cocos2d-x 中順時針方向爲正方向。

通過例子來說明:

/*

getAngle()方法是得到向量Vec2(9.0,-9.0f)X軸的夾角弧度

floatrotateAngle =CC_RADIANS_TO_DEGREES(angle1*(-1));//將得到的弧度轉換成角度

*/

         floatangle1 =Vec2(9.0f,-9.0f).getAngle();//第四區間

         floatangle2 =Vec2(-9.0f,-9.0f).getAngle();第三區間

         floatangle3 =Vec2(9.0f,9.0f).getAngle();//第一區間

         floatangle4 =Vec2(-9.0f,9.0f).getAngle();//第二區間

         floatrotateAngle1 =CC_RADIANS_TO_DEGREES(angle1*(-1));

         floatrotateAngle2 =CC_RADIANS_TO_DEGREES(angle2*(-1));

         floatrotateAngle3 =CC_RADIANS_TO_DEGREES(angle3*(-1));

         floatrotateAngle4 =CC_RADIANS_TO_DEGREES(angle4*(-1));

         CCLOG("angle1=  %f,angle2 =%f,angle1 =  %f,angle1 = %f\n",angle1,angle2,angle3,angle4);

         CCLOG("angle1=  %f",rotateAngle1);

         CCLOG("angle2=  %f",rotateAngle2);

         CCLOG("angle3=  %f",rotateAngle3);

         CCLOG("angle4=  %f",rotateAngle4);

輸出結果:

弧度:angle1 =  -0.785398,angle2=-2.356194,angle1 =  0.785398,angle1=  2.356194

角度:

angle1 = 45.000000

angle2 = 135.000000

angle3 = -45.000000

angle4 = -135.000000


又如例子:


vectoroffXoffY是觸摸點到弓箭之間的向量,通過 getAngle 方法,我們可以得到vector向量與X軸之間的弧度。 
再者,我們需要把弧度 rotateRadians轉化爲角度,CC_RADIANS_TO_DEGREES就是能把弧度轉化爲角度的宏。轉化時乘 -1是因爲Cocos2d-x中規定順時針方向爲正,這與我們計算出的角度方向相反,所以轉化的時候需要把角度a變爲-a




發佈了29 篇原創文章 · 獲贊 8 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章