我正在研究这个Lua脚本,我需要能够在另一个没有特定宽高比的矩形中找到最大的16:9矩形。所以你能告诉我怎么做吗?你不必写Lua - 伪代码也可以。
谢谢!
我已经尝试过并且可以确认这对于较低比率的外部作用是不可行的。
if wOut > hOut then
wIn = wOut
hIn = (wIn / 16) *9
else
hIn = hOut
wIn = (hIn / 9) * 16
end
答案 0 :(得分:1)
heightCount = originalHeight / 9;
widthCount = originalWidth / 16;
if (heightCount == 0 || widthCount == 0)
throw "No 16/9 rectangle";
recCount = min(heightCount, widthCount);
targetHeight = recCount * 9;
targetWidth = recCount * 16;
到目前为止,任何具有left = 0 ..(originalWidth - targetWidth)和top = 0 ..(originalHeight - targetHeight)和width = targetWidth和height = targetHeight的矩形都应满足您的要求。
答案 1 :(得分:0)
嗯,你的新矩形可以描述为:
h = w / (16/9)
w = h * (16/9)
您的新矩形应该基于外部矩形的宽度,所以:
h = w0 / (16/9)
w = w0
根据Lua如何使用数字,您可能需要确保它使用真正的除法而不是整数除法 - 上次我看起来是2001年,我的记忆力比咖啡变冷更快,但我似乎记住所有数字都是漂浮的......