宽高比计算

时间:2009-11-24 14:53:51

标签: math

下午全部。我遇到了一些我不太擅长的数学问题。有谁知道如何计算高度与宽度的比率?

关心菲尔

3 个答案:

答案 0 :(得分:4)

这是一个简单的函数,可以为您提供宽高比(简化和javascript)

function getAspectRatio(w, h)
    {
        var rem;
        var newW = w;
        var newH = h;

        while (h != 0)
        {
            rem = w % h;
            w = h;
            h = rem;
        }

        newH = newH / w;
        newW = newW / w;

        alert("Aspect Ratio: " + newW + ":" + newH);
    }

getAspectRatio(800,600);会产生4:3

希望这有帮助

编辑:我忘了提及,它计算两个数字的gcd并且不检查除零,所以你可能想要添加它。 :)

答案 1 :(得分:2)

伪代码:

newWidth = newHeight / oldHeight * oldWidth

OR

newHeight = newWidth / oldwidth * oldHeight

答案 2 :(得分:0)

如果你的意思是高度和宽度的宽高比,它只是高度/宽度减少到最大公因数。

例如,如果您的显示器是1600 x 1200,则1600/1200减少到4/3。要做到这一点:

在数学术语中,你必须找到“最大公因子”并将两个值(1600和1200)除以它。在这种情况下,它是400。

非常简单(和相对)的算法是:

for i <= min( 1600, 1200 ); i > 0; --i );
  if( 1600 % i == 0 && 1200 % i == 0 ) {
    minTop = 1600 / i;
    minBottom = 1200 / i;
    break;
  }
}

你的回答是minTop / minBottom。分别用所需的宽度和高度替换1600和1200.

基本上,算法是这样的:从两个数中较小的数字倒计算,找到1600和1200均匀分配的第一个数字(使用mod运算符,所以余数== 0)。最终会达到400.这会带来(1600/400)/(1200/400)或4/3。

希望这会有所帮助;对任何问题发表评论,我会尽力提供帮助。