我目前正在编写一款游戏,该游戏使用需要旋转的箭头来告诉用户他们将“扔”他们的梨子的角度。我编写了几乎所有的解决方案,但是,我有箭头作为图片框和其中的图像。我需要能够旋转并记录它旋转的角度,我有一个计时器,我计划每次旋转图像旋转一个角度,并将角度变量添加一个角度。我唯一要做的就是旋转图像。你需要我可以给任何进一步的细节,在图片框中旋转图片
任何帮助是非常赞赏, 非常感谢, 丹
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