栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

计算长宽比的算法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

计算长宽比的算法是什么?

我发现您正在寻找

integer:integer
像这样的可用长宽比解决方案,
16:9
而不是
float:1
像这样的解决方案
1.77778:1

如果是这样,您需要做的就是找到最大公约数(GCD)并将其除以两个值。GCD是将两个数字均分的最高数字。因此6和10的GCD为2,44和99的GCD为11。

例如,一个1024x768监视器的GCD为256。将这两个值除以该值将得到4x3或4:3。

(递归)GCD算法:

function gcd (a,b):    if b == 0:        return a    return gcd (b, a mod b)

在C中:

static int gcd (int a, int b) {    return (b == 0) ? a : gcd (b, a%b);}int main(void) {    printf ("gcd(1024,768) = %dn",gcd(1024,768));}

这是一些完整的HTML /
Javascript,它显示了一种检测屏幕尺寸并从中计算纵横比的方法。这在FF3中有效,我不确定其他浏览器对

screen.width
和的支持
screen.height

<html><body>    <script type="text/javascript">        function gcd (a, b) { return (b == 0) ? a : gcd (b, a%b);        }        var w = screen.width;        var h = screen.height;        var r = gcd (w, h);        document.write ("<pre>");        document.write ("Dimensions = ", w, " x ", h, "<br>");        document.write ("Gcd        = ", r, "<br>");        document.write ("Aspect     = ", w/r, ":", h/r);        document.write ("</pre>");    </script></body></html>

它输出(在我怪异的宽屏显示器上):

Dimensions = 1680 x 1050Gcd        = 210Aspect     = 8:5

我测试过的其他人:

Dimensions = 1280 x 1024Gcd        = 256Aspect     = 5:4Dimensions = 1152 x 960Gcd        = 192Aspect     = 6:5Dimensions = 1280 x 960Gcd        = 320Aspect     = 4:3Dimensions = 1920 x 1080Gcd        = 120Aspect     = 16:9

我希望我能在家里有最后一个,但不幸的是,这是一台工作机器。

如果发现图形调整大小工具不支持长宽比,该怎么办。我怀疑最好的选择是添加字母装订线(就像您在旧电视上观看宽屏电影时在顶部和底部看到的那样)。我将它们添加到顶部/底部或侧面(无论哪一个导致最少的装箱线数量),直到图像满足要求为止。

您可能要考虑的一件事是,图像的质量已从16:9更改为5:4-我仍然记得在介绍信箱技术之前,我在电视上看过的那年高个子,瘦小的牛仔。您最好在每高宽比上拥有一张不同的图像,而只是将实际尺寸调整为适合实际屏幕尺寸的尺寸,然后再将其发送出去。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/485641.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号