關於弧度轉角度問題
注:在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
又如例子:
vector(offX,offY)是觸摸點到弓箭之間的向量,通過
getAngle 方法,我們可以得到vector向量與X軸之間的弧度。
再者,我們需要把弧度 rotateRadians轉化爲角度,CC_RADIANS_TO_DEGREES
就是能把弧度轉化爲角度的宏。轉化時乘
-1是因爲Cocos2d-x中規定順時針方向爲正,這與我們計算出的角度方向相反,所以轉化的時候需要把角度a變爲-a。