给定宽度、高度和笔画约束参数化字母渲染
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
与斜边的比值与 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
。枫 sheet:
问题背景:我正在研究等宽参数字体,它允许通过调整一组参数来呈现不同样式的字母。
具体问题:给定一个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
与斜边的比值与 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
。枫 sheet: