2017-05-05 23 views
0

我試圖在Monogame中旋轉紋理!它可以圍繞另一個對象旋轉,比如做一個圓圈(不是對它自己的紋理進行排列),它可以做圓圈旋轉。它不能用鼠標旋轉,而是在該半徑內持續旋轉。我在MOnogame中進行了一次新的嘗試,最後兩天嘗試了一切,但都沒有成功。有人說我可以對Sin和Cos做一些思考,但我沒有得到它!它的一個項目,我很失落!如果有人能幫助我,我會非常非常棒! [所以周圍的背景這個標誌schould routate] [2]在monogame,c圍繞背景wit​​hut鼠標旋轉的紋理#

鏈接到圖片https://www.dropbox.com/s/gywi7teun8lqfp1/Unbenannt.png?dl=0

回答

0

這是一個純粹的數學問題。從我可以理解,你要的是做點周圍的紋理軌道,看到這個公式:

newX = centerX + (cosX * (pointX-centerX) + sinX * (pointY -centerY)) 
newY = centerY + (-sinX * (pointX-centerX) + cosX * (pointY -centerY)) 

有了:
centerXcenterY是點左右要軌道
cosXsinX是分別
pointXpointY角度的餘弦和角度的竇是你想從(你的情況紋理位置)

注意,應用旋轉位置角度應該是弧度,而不是度數。

+0

非常感謝,但我怎麼可以將它翻譯成代碼? –

+0

這會工作,但在monogame中最好使用旋轉矩陣,它更多的是api的精神,加上在他們爲你做罪和cos的掩護下 –

0

這個問題的答案可以在這裏找到:

Have an object circle an object

也有,如果你想用一個矩陣,讓API旋轉,就如何在MonoGames

使用數學的例子你可以嘗試這樣的事情

public Vector2 RotateAboutOrigin(Vector2 point, Vector2 origin, float rotation) 
{ 
    return Vector2.Transform(pointorigin,Matrix.CreateRotationZ(rotation))+origin; 
}