原点を中心に回転すると、座標の新しい値を見つけようとしています。
たとえば、点 (1,1) があるとします。原点を中心に座標軸を 45 度回転すると、変換後の座標は (0,1.414) になります。
cocos2d または Objective-C でこれを効率的に行う方法はありますか? これを行うための数学を説明する回答も役立ちます。
原点を中心に回転すると、座標の新しい値を見つけようとしています。
たとえば、点 (1,1) があるとします。原点を中心に座標軸を 45 度回転すると、変換後の座標は (0,1.414) になります。
cocos2d または Objective-C でこれを効率的に行う方法はありますか? これを行うための数学を説明する回答も役立ちます。
このページを参照してください: http://www.siggraph.org/education/materials/HyperGraph/modeling/mod_tran/2drota.htm
これは式です:
x' = x cos f - y sin f
y' = y cos f + x sin f
sin と cos はラジアンを取るので、次のようにする必要があります。
double x,y;
double newX,newY;
double angle;
//Test values:
x=1;
y=1;
angle = 45;
double rad = angle*M_PI/180;
newX = x * cos(rad) - y * sin(rad);
newY = y * cos(rad) + x * sin(rad);
私はこれをテストしていないので、タイプミスがあるかもしれません... ;)