3 Attachment(s)

Keeping same X & Y when size has changed.

Hi,

I am trying to replace one object with another object of a different size. If there is no rotation everything works fine. As soon as rotation is added the new object is shifted. Rotation is performed around the centre of the object. Height and width are calculated before rotation.

I can easly calculated the rotated X, Y, height and width.

double radians = firstObject.Degree * Math.PI / 180;

new1H = (int)Math.Round(Math.Abs(firstObject.Height * Math.Cos(radians)) + Math.Abs(firstObject.Width * Math.Sin(radians)) + .5);

new1W = (int)Math.Round(Math.Abs(firstObject.Width * Math.Cos(radians)) + Math.Abs(firstObject.Height * Math.Sin(radians)) + .5);

new1X = firstObject.X - (new1W - firstObject.Width) / 2;

new1Y = firstObject.Y - (new1H - firstObject.Height) / 2;

Below is what I'm starting with.

http://www.mathhelpforum.com/math-he...1&d=1244552403

This is what I get when I do a replace. Please note how the top left corner of the new object does not match where the top left of the old object was.

http://www.mathhelpforum.com/math-he...1&d=1244552410

Below is what I want. Please note the way the top left corner of the new object is at the same X, Y coordinates as the old object.

http://www.mathhelpforum.com/math-he...1&d=1244552417

Any help appreciated!