Math 纵横比a计算

Math 纵横比a计算,math,Math,下午好。我们遇到了一些我不太擅长的数学问题。有人知道如何计算高度与宽度的比率吗 关于Phil伪代码: newWidth = newHeight / oldHeight * oldWidth 或 如果你是指一个高度和宽度的纵横比,它只是高度/宽度减少到最大公因数 例如,如果您的显示器是1600 x 1200,它的1600/1200将减少为4/3。为此: 用数学术语来说,你必须找到“最大公因式”,然后将这两个值(1600和1200)除以它。在这种情况下,是400 一个非常简单(相对而言)的算法是:

下午好。我们遇到了一些我不太擅长的数学问题。有人知道如何计算高度与宽度的比率吗

关于Phil

伪代码:

newWidth = newHeight / oldHeight * oldWidth


如果你是指一个高度和宽度的纵横比,它只是高度/宽度减少到最大公因数

例如,如果您的显示器是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;
  }
}
用于i0--一),;
如果(1600%i==0&&1200%i==0){
minTop=1600/i;
最小底部=1200/i;
打破
}
}
你的答案是minTop/minBottom。将1600和1200分别替换为所需的宽度和高度

基本上,算法是这样的:从两个数字中的较小者开始倒数,然后找到第一个数字,其中1600和1200被均匀地分成两部分(使用mod运算符,因此余数==0)。最终将达到400。这就导致了(1600/400)/(1200/400)或4/3


希望这有帮助;如果有任何问题,请留下评论,我会尽力提供进一步的帮助。

这里有一个简单的函数,可以为您提供纵横比(简化和javascript)

getAspectRatio(800600)结果为
4:3

希望这有帮助

G


编辑:我忘了提到,它计算两个数字的gcd,并且不检查是否被零除,所以您可能需要添加它。:)

菲尔·杰克逊相当高。他会有很高的长宽比。肯定会有更多吗?h=344 w=543该比率为??我将在JavaScription中使用它。请提供有关您正在尝试执行的操作的更多信息!否则,高度/宽度似乎是一个完美的答案,这是一个分数简化的问题。344/543是不可还原的,所以这里的纵横比是543:344。如果你不熟悉分数,就玩一玩。什么?如何以编程方式从1333/1000到4/3?最简单的方法是将两者相乘1000,四舍五入,然后乘或除?不断返回NaN:NaN函数calcRatio(){$(“.heightAndWidth”)。按键(函数(e){var-rem;var-newW=20;var-newH=100;while(h!=0){rem=w%h;w=h;h=rem;}newH=newH/w;newW=newW/w;警报(“纵横比:“+newW+”:“+newH”);}
for i <= min( 1600, 1200 ); i > 0; --i );
  if( 1600 % i == 0 && 1200 % i == 0 ) {
    minTop = 1600 / i;
    minBottom = 1200 / i;
    break;
  }
}
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);
    }