我正在尝试使用html5 JavaScript游戏引擎和Cordova。 我经常会遇到宽高比和缩放等关键词。 由于html5游戏处理画布和游戏图像是通过drawImage()进行的,因此我无法理解在使用Cordova构建游戏时对纵横比的需求。 有没有很好的例子来理解宽高比或缩放?
答案 0 :(得分:3)
宽高比
当您将图像的宽度除以高度时,您可以获得宽高比。它可以写成单个数字(2),或分数(2/1)或冒号2:1。
完美正方形的顶点为1或1:1,其高度与其宽度相同。 如果你有一个宽屏显示器,它将具有16:10或1.6的方面,你的iphone 3:2或1.5和旧电视有4:3或1.3。数字越接近1平方的图像/屏幕/事物。
宽高比是大小和单位不变量。这意味着无论物体有多大,或者其测量的单位,英尺,米,英寸或毫米,方面总是相同的。
如果你有方面,那么你需要的只是一边的长度,你可以计算出另一个尺寸的长度。因此,如果您的宽屏电视宽高比为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纸并将其折成两半然后翻转它,折叠纸的方面仍然是2:1的平方根。它的尺寸现在是A1,再次折叠得A2,然后是A3 ..无论你多久折叠它,方面仍保持不变。它是唯一具有该属性的宽高比。
希望这有助于解释比率是什么,它们用于什么,以及如何使用它们。