#c# #algorithm
Вопрос:
Давайте предположим, что у меня есть картинка, и мне нужно поместить ее в квадрат. Но в некоторых случаях картинка слишком большая, поэтому мне нужно изменить ее размер, чтобы она соответствовала квадрату.
Алгоритм должен рассчитать и вернуть, на сколько мне нужно уменьшить его размер. Функция получает высоту, ширину изображения, высоту квадрата и ширину квадрата. Он вернет число, указывающее, на сколько мне нужно уменьшить, сохраняя исходное соотношение ширины и высоты.
Это мое решение, и я не уверен, что охватываю все случаи:
double CalcPicSize(double picWidth, double picHeight, double sqWidth, double sqHeight )
{
var widthRatio, heightRatio;
if (picWidth <= 0 || picHeight <= 0 || sqWidth <= 0 || sqHeight <= 0)
return -1;
if (picWidth == null || picHeight == null || sqWidth == null || sqHeight == null)
return -1;
if(picWidth <= sqWidth amp;amp; picHeight <= sqHeight)
return 1;
widthRatio = picWidth / sqWidth;
heightRatio = picHeight / sqHeight;
if(widthRatio > heightRatio)
return widthRatio;
return heightRatio;
}
Комментарии:
1. этот вид лучше подходит для codereview.stackexchange.com
2. Is
square height
=height of the square
.. илиheight*height
? (потому что имхо.. квадрат имеет одинаковую высоту и ширину)