Why isn't our c# graphics code working any more?
- by Jared
Here's the situation:
We have some generic graphics code that we use for one of our projects. After doing some clean-up of the code, it seems like something isn't working anymore (The graphics output looks completely wrong).
I ran a diff against the last version of the code that gave the correct output, and it looks like we changed one of our functions as follows:
static public Rectangle FitRectangleOld(Rectangle rect, Size targetSize)
{
if (rect.Width <= 0 || rect.Height <= 0)
{
rect.Width = targetSize.Width;
rect.Height = targetSize.Height;
}
else if (targetSize.Width * rect.Height >
rect.Width * targetSize.Height)
{
rect.Width = rect.Width * targetSize.Height / rect.Height;
rect.Height = targetSize.Height;
}
else
{
rect.Height = rect.Height * targetSize.Width / rect.Width;
rect.Width = targetSize.Width;
}
return rect;
}
to
static public Rectangle FitRectangle(Rectangle rect, Size targetSize)
{
if (rect.Width <= 0 || rect.Height <= 0)
{
rect.Width = targetSize.Width;
rect.Height = targetSize.Height;
}
else if (targetSize.Width * rect.Height >
rect.Width * targetSize.Height)
{
rect.Width *= targetSize.Height / rect.Height;
rect.Height = targetSize.Height;
}
else
{
rect.Height *= targetSize.Width / rect.Width;
rect.Width = targetSize.Width;
}
return rect;
}
All of our unit tests are all passing, and nothing in the code has changed except for some syntactic shortcuts. But like I said, the output is wrong. We'll probably just revert back to the old code, but I'm curious if anyone has any idea what's going on here.
Thanks.