I know that you can pass a Point array to the DrawImage method of the Graphics object to apply rotation, skewing and flipping, but I'm having trouble figuring out how to calculate the rotation. So far I've got:
Code:
Dim radius As Integer = Math.Sqrt((rect.Width / 2) ^ 2 + (rect.Height / 2) ^ 2)
Dim dX As Integer = RadToDeg(Math.Cos(DegToRad(angle))) * radius
Dim dY As Integer = RadToDeg(Math.Tan(DegToRad(angle))) * dX
Dim new_upper_left_corner As New Point(rect.X + (rect.Width \ 2) - dX, rect.Y + (rect.Height \ 2) - dY)
This is all just off the top of my head so far, I'm not sure if it's right. How do I calculate the other points on the rectangle, and is there a built-in VB.NET method that's much easier? (Apart from Graphics.RotateTransform, which is slow and also rotates around 0,0.)