Позвольте обозначить длину нижнего пустого сегмента как
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
. Кленовый лист:
