给定宽度,高度和笔划,约束参数化字母呈现

时间:2019-07-02 06:49:15

标签: geometry trigonometry solver typography

问题背景:我正在研究一种等宽参数字体,该字体可以通过调整一组参数来呈现不同样式的字母。

特定问题:给定的矩形区域为 W 宽度和 H 高度并指定笔划宽度 S ,当笔划的水平投影/交叉点 X 的宽度应为多少呈现字母“ V”? 该字母受矩形区域约束,不能以任何方式重叠或转义。字母是对称的。我不会被那些使字母无法渲染的极端参数值所困扰。

enter image description here

我的想法:这是否涉及某种几何约束求解器,从而导致基于多次迭代的近似解?

答案期望:一类问题的一般方向,最好是一些公式。谢谢。

1 个答案:

答案 0 :(得分:1)

让低空段的长度表示为

p = (w-x)/2
so
x = w - 2 * p

看看带注释的图形-三角形ABC和DFA是相似的直角三角形,具有相似的锐角^ CAB和^ ADF,AB = h,AD = x,FD = s,BC = p)

enter image description here

因此我们可以看到h与斜边的比率与sx的比率相同(这是左下三角形的锐角余弦)。

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。枫木表:

enter image description here