长宽比需要多少?

What is the need for aspect ratio?

我正在试验 html5 JavaScript 游戏引擎和 Cordova。 我经常遇到长宽比和缩放等关键词。 由于 html5 游戏处理 canvas 并且游戏图像是通过 drawImage() 放置的,因此我无法理解在使用 Cordova 构建游戏时对纵横比的需求。 有没有很好的例子来理解宽高比或缩放比例?

纵横比

宽高比是用图像的宽度除以高度得到的。它可以写成单个数字 (2),或分数 (2/1) 或带有冒号 2:1.

正方形的aspex为1或1:1,其高度与宽度相同。 如果您有宽屏显示器,它的宽高比为 16:10 或 1.6,您的 iphone 3:2 或 1.5,而旧电视的宽高比为 4:3 或 1.3。数字越接近 1,image/screen/thing 的平方越小。

纵横比是尺寸和单位不变的。这意味着无论物体有多大,或者它的测量单位是什么,英尺、米、英寸或毫米,长宽比总是相同的。

如果你有纵横比,那么你只需要一侧的长度,你就可以算出另一个尺寸的长度。因此,如果您有宽屏电视宽高比 16:9 或 1.7,并且它和您一样高,那么您也知道如果您躺在它旁边,它的宽度将是您的 1.7 倍。

当您调整图像大小时,您必须知道它的宽高比,否则您会挤压或拉伸图像。例如,如果您拍摄一部宽屏电影(16:9 或 1.7)并使其适合旧电视(4:3 或 1.3),因为纵横比发生了变化,所有内容都会被压扁并看起来很瘦。

代码中的纵横比。

在 javascript 中,图像的宽度和高度 属性 以像素表示。要处理我们的宽高比很容易

var aspect = image.width / image.height;

如果您想让该图像适合 1000 像素高的区域。你知道宽度等于高度乘以纵横比。

ctx.drawImage(image, 0, 0, 1000 * aspect, 1000);

如果您想要适应 1000 像素的宽度,则将宽度除以纵横比即可得到高度。

ctx.drawImage(image, 0, 0, 1000, 1000/aspect);

不会被压扁,圆还是圆,方还是方,瘦的人还是瘦的。

著名的纵横比是黄金比例 1.618 或 16:10。据说是最赏心悦目的。许多著名的画作从很久以前就有这个方面,还有建筑、雕塑、风景等等。

另一个众所周知的,一个非常方便的纵横比是 2 : 1 的平方根。它是 A0、A1、A2 .. 纸张的纵横比,并且 属性 没有其他纵横比有。如果你拿一张 A0 sheet 的纸,把它对折,然后把它翻过来,折叠后的 sheet 仍然是 2 : 1 的平方根。现在它的大小是 A1,再折叠一次获得 A2,然后是 A3...无论您折叠多少次,它的外观仍然保持不变。这是唯一具有 属性.

的纵横比

希望这有助于解释纵横比是什么、它们的用途以及如何使用它们..