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:
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.)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)




Reply With Quote