给定宽度、高度和笔画约束参数化字母渲染

Constraint parametric letter rendering given width, height and stroke

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

具体问题:给定一个W宽度和[=26=的矩形区域]H 高度和给定笔划宽度 S 的宽度应该是多少渲染字母 'V' 时笔划的水平 projection/intersection X? 字母被矩形区域约束,不能以任何方式重叠或逃逸。这封信是对称的。我不介意极端的参数值会使字母无法呈现。

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

答题期望: 大方向上一道class的题,最好是一些公式。谢谢。

让低空段的长度表示为

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

看注释图——三角形ABC和DFA相似right-angled锐角相似^CAB和^ADF, AB=h, AD=x, FD=s, BC=p)

所以我们可以看到 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。枫 sheet: