Рассмотрите задачу: при каких условиях на четырёхточечный набор можно построить выпуклый четырёхугольник с заданными диагоналями и суммой противоположных углов
Краткий ответ (необходимое и достаточное условие). Пусть на наборе из четырёх точек мы хотим получить выпуклый четырёхугольник ABCDABCDABCD с диагоналями ACACAC и BDBDBD заданных длин d1,d2d_1,d_2d1,d2 и с заданной суммой противоположных углов S=A+CS=A+CS=A+C (вторую сумму B+DB+DB+D тогда равна 360∘−S360^\circ-S360∘−S). Обозначим точку пересечения диагоналей через OOO и положим x=AO,x′=OC,y=BO,y′=OD,
x=AO,\quad x'=OC,\quad y=BO,\quad y'=OD, x=AO,x′=OC,y=BO,y′=OD,
так что x+x′=d1, y+y′=d2x+x'=d_1,\;y+y'=d_2x+x′=d1,y+y′=d2. Пусть θ\thetaθ — угол между диагоналями в точке OOO. Тогда необходимое и достаточное условие существования требуемого выпуклого четырёхугольника — существование положительных чисел x,x′,y,y′x,x',y,y'x,x′,y,y′ с указанными суммами и угла θ∈(0,π)\theta\in(0,\pi)θ∈(0,π) (соответствующего геометрически заданному положению точек), удовлетворяющих уравнению tanS2=xy+x′y′ xy−x′y′ tanθ2.
\tan\frac{S}{2}=\frac{xy+x'y'}{\,xy-x'y'\,}\;\tan\frac{\theta}{2}. tan2S=xy−x′y′xy+x′y′tan2θ.
(Если xy=x′y′xy=x'y'xy=x′y′, то правая часть формально бесконечна и это соответствует частному случаю S=180∘S=180^\circS=180∘.) Пояснение / откуда берётся формула (вкратце): - углы вершин выражаются через углы треугольников с вершиной в OOO; - применение формулы для суммы/разности тангенсов даёт указанную связь между половиной суммы противоположных углов, отношением произведений отрезков диагоналей и углом между диагоналями. Практическое применение к четырёхточечному набору: - выберите пару пар точек, которые должны быть противоположными вершинами (то есть пары, дающие диагонали длиной d1d_1d1 и d2d_2d2); - проверьте, что соответствующие отрезки пересекаются внутри (чтобы многоугольник был выпуклым); - найдите в пересечении OOO отрезки x,x′,y,y′x,x',y,y'x,x′,y,y′ и угол θ\thetaθ; - подставьте в формулу выше — если равенство выполняется (с учётом случая S=180∘S=180^\circS=180∘), то требуемый выпуклый четырёхугольник существует; иначе — не существует. Замечания: - степени свободы согласуются: длины диагоналей и SSS в общем задают совместимые данные не единственным образом, но проверка сводится к приведённому уравнению. - при заданных только длин диагоналей и SSS можно иногда получить бесконечно много невырожденных многоугольников (параметр остаётся), но для фиксированного набора четырёх точек условие сводится к проверке указанного соотношения.
Пусть на наборе из четырёх точек мы хотим получить выпуклый четырёхугольник ABCDABCDABCD с диагоналями ACACAC и BDBDBD заданных длин d1,d2d_1,d_2d1 ,d2 и с заданной суммой противоположных углов S=A+CS=A+CS=A+C (вторую сумму B+DB+DB+D тогда равна 360∘−S360^\circ-S360∘−S). Обозначим точку пересечения диагоналей через OOO и положим
x=AO,x′=OC,y=BO,y′=OD, x=AO,\quad x'=OC,\quad y=BO,\quad y'=OD,
x=AO,x′=OC,y=BO,y′=OD, так что x+x′=d1, y+y′=d2x+x'=d_1,\;y+y'=d_2x+x′=d1 ,y+y′=d2 . Пусть θ\thetaθ — угол между диагоналями в точке OOO.
Тогда необходимое и достаточное условие существования требуемого выпуклого четырёхугольника — существование положительных чисел x,x′,y,y′x,x',y,y'x,x′,y,y′ с указанными суммами и угла θ∈(0,π)\theta\in(0,\pi)θ∈(0,π) (соответствующего геометрически заданному положению точек), удовлетворяющих уравнению
tanS2=xy+x′y′ xy−x′y′ tanθ2. \tan\frac{S}{2}=\frac{xy+x'y'}{\,xy-x'y'\,}\;\tan\frac{\theta}{2}.
tan2S =xy−x′y′xy+x′y′ tan2θ . (Если xy=x′y′xy=x'y'xy=x′y′, то правая часть формально бесконечна и это соответствует частному случаю S=180∘S=180^\circS=180∘.)
Пояснение / откуда берётся формула (вкратце):
- углы вершин выражаются через углы треугольников с вершиной в OOO;
- применение формулы для суммы/разности тангенсов даёт указанную связь между половиной суммы противоположных углов, отношением произведений отрезков диагоналей и углом между диагоналями.
Практическое применение к четырёхточечному набору:
- выберите пару пар точек, которые должны быть противоположными вершинами (то есть пары, дающие диагонали длиной d1d_1d1 и d2d_2d2 );
- проверьте, что соответствующие отрезки пересекаются внутри (чтобы многоугольник был выпуклым);
- найдите в пересечении OOO отрезки x,x′,y,y′x,x',y,y'x,x′,y,y′ и угол θ\thetaθ;
- подставьте в формулу выше — если равенство выполняется (с учётом случая S=180∘S=180^\circS=180∘), то требуемый выпуклый четырёхугольник существует; иначе — не существует.
Замечания:
- степени свободы согласуются: длины диагоналей и SSS в общем задают совместимые данные не единственным образом, но проверка сводится к приведённому уравнению.
- при заданных только длин диагоналей и SSS можно иногда получить бесконечно много невырожденных многоугольников (параметр остаётся), но для фиксированного набора четырёх точек условие сводится к проверке указанного соотношения.