#### LambertK

##### New member

I am using GraphicsPath to achieve this. When I move the cursor to one of the edges of the rotated image the coordinates have an offset. I have found no relation between angle and offset.

Is this a bug, or am I making a wrong assumption. The Matrix IsInvertible property is true;

The code:

public PointF CalcPointA(float orX, float orY, int nwW, int nwH, float sin, float cos, PointF p, int OrigWidth = 0, int OrigHeight = 0) { System.Drawing.Drawing2D.Matrix m1 = new System.Drawing.Drawing2D.Matrix(); GraphicsPath gpt = new GraphicsPath(); m1.RotateAt(angle, new PointF(Origim.Width / 2, Origim.Height / 2)); gpt.AddRectangle(new RectangleF(0, 0, Origim.Width, Origim.Height)); // The size of the original image gpt.Transform(m1); PointF[] pts = gpt.PathPoints; //Get the PathPoints to calculate the Translation to Align with Axes float x11 = ShiftX(pts); // calculate X translation to shift the rotated image to the Y-Axis float y11 = ShiftY(pts); // Calculate Y translation to shift the rotated image to the X-Axis m1.Translate(x11, y11); gpt.Transform(m1); pts = gpt.PathPoints; // Here I can check the Image is touching X and Y Axes gpt.AddRectangle(new RectangleF(p.X * Origim1.Width / Width, p.Y * Origim1.Height / Height, 10, 10)); // Point p is the mouse coordinate, translated to Image coordinates, since you can't add a PointF to the graphicsPath, I add a small rectangle // Origim1 is the rotated Image as a Bitmap, I have verified the size of the resulting rcetangle matches Origim1.Size m1.Invert(); // invert, Rotate back to 0 degrees angle gpt.Transform(m1); pts = gpt.PathPoints; //Original image is back with original Size angle 0 PathPoints(0,0,Origim.Width,Origim.Height) return new PointF((pts[4].X), (pts[4].Y)); }

Any help would be greatly appreciated.

Thanks

Lambert Knapen