2017-05-05 11 views
0

モノグームでテクスチャを回転しようとしています。それはサークルをするように別のオブジェクトの周りに回転する(それは自己テクスチャをルーティングしない)、それはサークルを回転させることができる。それはマウスで回転するのではなく、その半径で連続的に回転します。私はMOnogameで新しいと最後の2日間のすべてを試して何も働いた。何人かは、私はSinとCosと何とかやりたいと言っていましたが、私はそれを手に入れませんでした!そのプロジェクトと私は非常に失われた!誰かが私を助けることができるなら、私は非常に素晴らしいだろう! [だから、バックグラウンドの周りにこのロゴschouldのroutateは] [2]Monogame、c#

リンクは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

これはうまくいくでしょうが、モノゲームでは回転行列を使うほうが良いでしょう。それはもっとapiの精神であり、カバーの下では彼らはあなたのために罪を犯しています –

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; 
} 
関連する問題