01/10/13 9:25
coyote100
devo simulare il giro di una ruota.
Questa funzione(in basso) funziona, ma il mio problema e che la ruota(picturebox), mentre ruota si sposta a destra a sinistra, e a me servirebbe che ruotasse, ma sempre in quel punto.
Grazie
Questa funzione(in basso) funziona, ma il mio problema e che la ruota(picturebox), mentre ruota si sposta a destra a sinistra, e a me servirebbe che ruotasse, ma sempre in quel punto.
Private Function RotazioneBMP(ByVal BMPInput As Bitmap, ByVal angoloRotazione As Single, ByVal coloreSfondo As Brush) As Bitmap 'Angolo di rotazione desiderato Dim radianti As Double = angoloRotazione * Math.PI / 180 'Dimensioni di BMPInput Dim bmpW As Integer = BMPInput.Width Dim bmpH As Integer = BMPInput.Height 'Bitmap di output 'Dimensioni Dim bmpOutW As Integer = bmpW * Math.Abs(Math.Cos(radianti)) + bmpH * Math.Abs(Math.Sin(radianti)) Dim bmpOutH As Integer = bmpH * Math.Abs(Math.Cos(radianti)) + bmpW * Math.Abs(Math.Sin(radianti)) Dim BMPOutput As New Bitmap(bmpOutW, bmpOutH) Dim G As Graphics = Graphics.FromImage(BMPOutput) 'Colore di sfondo per le regioni esterne G.FillRectangle(coloreSfondo, 0, 0, bmpOutW, bmpOutH) 'Disegno / Rotazione di BMPInput su BMPOutput Dim M As New System.Drawing.Drawing2D.Matrix M.RotateAt(angoloRotazione, New PointF(bmpOutW / 2, bmpOutH / 2)) 'Centro della rotazione G.Transform = M G.DrawImage(BMPInput, CInt((bmpOutW - BMPInput.Width) / 2), CInt((bmpOutH - BMPInput.Height) / 2)) Return BMPOutput End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim percorso As String = Application.StartupPath Dim BMP As New Bitmap(percorso & "\IMMAGINI\pp.bmp") ' PBruora.Image.RotateFlip(RotateFlipType.Rotate90FlipXY) ' PBruora.Invalidate() PBruora.Image = RotazioneBMP(BMP, txtAngle.Text, Brushes.Red) End Sub
Grazie
aaa