Why isn't our c# graphics code working any more?
Posted
by Jared
on Stack Overflow
See other posts from Stack Overflow
or by Jared
Published on 2009-02-13T21:04:42Z
Indexed on
2010/04/12
13:53 UTC
Read the original article
Hit count: 201
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.
© Stack Overflow or respective owner