8

原点を中心に回転すると、座標の新しい値を見つけようとしています。

たとえば、点 (1,1) があるとします。原点を中心に座標軸を 45 度回転すると、変換後の座標は (0,1.414) になります。

cocos2d または Objective-C でこれを効率的に行う方法はありますか? これを行うための数学を説明する回答も役立ちます。

4

1 に答える 1

16

このページを参照してください: 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);

私はこれをテストしていないので、タイプミスがあるかもしれません... ;)

于 2012-02-08T09:05:56.920 に答える