[英]Texture rotating around background withut mouse in Monogame, c#
我試圖在Monogame中旋轉紋理! 它應該像繞一個圓一樣繞另一個對象旋轉(而不是自行消散紋理),它應該繞一個圓旋轉。 它不應隨鼠標旋轉,而是在該半徑范圍內連續旋轉。 我是MOnogame的新手,最后兩天嘗試了所有方法,但沒有任何效果。 有人說我應該對Sin和Cos做些思考,但我沒有理解! 它的一個項目,我很失落! 如果有人可以幫助我,我會非常非常高興! [因此,該徽標應在背景周圍潰爛] [2]
鏈接到圖片https://www.dropbox.com/s/gywi7teun8lqfp1/Unbenannt.png?dl=0
這是一個純數學問題。 據我了解,您想要的是使紋理圍繞某個點旋轉,請參見以下公式:
newX = centerX + ( cosX * (pointX-centerX) + sinX * (pointY -centerY))
newY = centerY + ( -sinX * (pointX-centerX) + cosX * (pointY -centerY))
與:
centerX
和centerY
是您要繞行的點
cosX
和sinX
分別是角度的余弦和角度的竇
pointX
和pointY
是您要從中應用旋轉的位置(在您的情況下為紋理位置)
請注意,角度應以弧度為單位,而不是以度為單位。
可以在以下位置找到該問題的答案:
還有一些在MonoGames中如何使用數學的示例
如果您想使用矩陣並讓api旋轉,則可以嘗試這樣的操作
public Vector2 RotateAboutOrigin(Vector2 point, Vector2 origin, float rotation)
{
return Vector2.Transform(pointorigin,Matrix.CreateRotationZ(rotation))+origin;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.