2012-02-08 178 views
5

我想找到座標的新值,如果我圍繞原點旋轉。如何旋轉座標系?

例如,說我有點(1,1)。 如果我圍繞原點旋轉座標軸45度,變換的座標將是(0,1.414)

有沒有辦法在cocos2d或objective-c中有效地做到這一點? 即使解答數學這樣做的答案也會有所幫助。

回答

10

參見本頁: http://www.siggraph.org/education/materials/HyperGraph/modeling/mod_tran/2drota.htm

這是下式:

X '= X COS的F - ý罪˚F

Y'= Y COS F + X罪˚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); 

我沒有測試這個,所以可能有錯別字...;)

+0

感謝您的回答。 – xcoder 2012-02-08 09:38:20