状況は次のとおりです。
プロジェクトの 1 つで使用する一般的なグラフィックス コードがいくつかあります。コードのクリーンアップを行った後、何かが機能していないように見えます (グラフィック出力が完全に間違っているように見えます)。
正しい出力が得られた最新バージョンのコードに対して diff を実行したところ、関数の 1 つを次のように変更したようです。
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;
}
に
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;
}
すべての単体テストはすべて合格であり、いくつかの構文上のショートカットを除いて、コードは何も変更されていません。しかし、私が言ったように、出力は間違っています。おそらく古いコードに戻るだけでしょうが、ここで何が起こっているのか誰か知っているかどうか知りたいです.
ありがとう。