问题背景:我正在研究一种等宽参数字体,该字体可以通过调整一组参数来呈现不同样式的字母。
特定问题:给定的矩形区域为 W 宽度和 H 高度并指定笔划宽度 S ,当笔划的水平投影/交叉点 X 的宽度应为多少呈现字母“ V”? 该字母受矩形区域约束,不能以任何方式重叠或转义。字母是对称的。我不会被那些使字母无法渲染的极端参数值所困扰。
我的想法:这是否涉及某种几何约束求解器,从而导致基于多次迭代的近似解?
答案期望:一类问题的一般方向,最好是一些公式。谢谢。
答案 0 :(得分:1)
让低空段的长度表示为
p = (w-x)/2
so
x = w - 2 * p
看看带注释的图形-三角形ABC和DFA是相似的直角三角形,具有相似的锐角^ CAB和^ ADF,AB = h,AD = x,FD = s,BC = p)
因此我们可以看到h
与斜边的比率与s
和x
的比率相同(这是左下三角形的锐角余弦)。
h / Sqrt(h^2 + p^2) = s / x = s / (w - 2 * p)
h^2 / (h^2 + p^2) = s^2 / (w^2 - 4 * w * p + 4 * p^2)
h^2 * (w^2 - 4 * w * p + 4 * p^2) = s^2 * (h^2 + p^2)
h^2 * w^2 - 4 * w * h^2 * p + 4 * h^2 * p^2 = s^2 * h^2 + s^2 * p^2
p^2 * (4 * h^2 - s^2) - p * (4 * w * h^2 ) + h^2 * (w^2 - s^2) = 0
现在我们有了未知p的二次方程。选择可靠的p
根值(正且小于w/2
)并计算x
例如,h=4; w=6; s=1.5
给出p~2.14, so x ~ 1.7
。枫木表: