我目前正在編寫一款遊戲,該遊戲使用需要旋轉的箭頭來告訴用戶他們將「扔」他們的梨子的角度。我編寫了幾乎所有的解決方案,但是,我有箭頭作爲圖片框和其中的圖像。我需要能夠旋轉並記錄它旋轉的角度,我有一個計時器,我計劃每次旋轉圖像旋轉一個角度,並將角度變量添加一個角度。我唯一要做的就是旋轉圖像。你需要我可以給任何進一步的細節,在圖片框中旋轉圖片
任何幫助是非常讚賞, 非常感謝, 丹
Private Function RotateImage(image As Image, angle As Single) As Bitmap
' the calling code is responsible for (and must)
' disposing of the bitmap returned
Dim retBMP As New Bitmap(image)
retBMP.SetResolution(image.HorizontalResolution, image.VerticalResolution)
Using g = Graphics.FromImage(retBMP)
' rotate aroung the center of the image
g.TranslateTransform(image.Width \ 2, image.Height \ 2)
'rotate
g.RotateTransform(angle)
g.TranslateTransform(-image.Width \ 2, -image.Height \ 2)
'draw image to the new boitmap
g.DrawImage(retBMP, New PointF(0, 0))
End Using
Return retBMP
End Function
Private Sub PowerTimer_Tick(sender As Object, e As EventArgs) Handles PowerTimer.Tick
If ArrowAngle >= 45 Then
AngleIncreasing = False
ElseIf ArrowAngle <= -45 Then
AngleIncreasing = True
End If
If AngleIncreasing = True Then
Arrow.Image = New Bitmap(Arrow.Image)
Arrow.Image = RotateImage(Arrow.Image, 1)
Me.Refresh()
ArrowAngle = ArrowAngle + 1
Else
Arrow.Image = RotateImage(Arrow.Image, 1)
Arrow.Image = RotateImage(Arrow.Image, -1)
Me.Refresh()
ArrowAngle = ArrowAngle - 1
End If
End Sub
你有沒有做過任何研究?第一次谷歌搜索返回MSDN寫入'RotateFlip'方法。 https://msdn.microsoft.com/en-us/library/system.drawing.image.rotateflip(v=vs.110).aspx – TheValyreanGroup
是的,我已經完成了研究,但你應該知道RotateFlip方法不能做事情的價值,如1度,它可以做90,180和所有其他主要價值,但我不相信它可以做一個學位。糾正我,如果我錯了,並顯示一些示例代碼,但我不認爲這種方法適用於我的實施。只是爲了讓你知道我也研究過圖像(圖畫),但是爲了旋轉箭頭而效率不高。 – Dandb79
http://www.codeproject.com/Articles/58815/C-Image-PictureBox-Rotations – TheValyreanGroup