簡體   English   中英

在Monogame中,紋理圍繞背景wit​​hut鼠標旋轉,C#

[英]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))

與:
centerXcenterY是您要繞行的點
cosXsinX分別是角度的余弦和角度的竇
pointXpointY是您要從中應用旋轉的位置(在您的情況下為紋理位置)

請注意,角度應以弧度為單位,而不是以度為單位。

可以在以下位置找到該問題的答案:

有一個物體繞着一個物體

還有一些在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM