Я думаю в лоб надо решать так:
1. Понятно что все вершины лежат на окружности;
2. Понятно что при заданном векторе E (его можно считать горизонтальным, проходящим через центр окружности), вся фигура определяется положением точки стыковки векторов A и B на окружности, это тупо угол от 0 до Pi (если в радианах);
3. Понятно, что искомые вектора могут быть только вида x1*A+y1*C+z1*E и x2*A+y2*C+z2*E;
Дальше можно тупо попробовать найти x1,y1,z1,x2,y2,z2, чтобы при любом заданном угле эти вектора были перпендикулярны.
Добавлено спустя 11 минут 22 секунды:Попробовать разрешить в лоб?
Добавлено спустя 11 минут 10 секунд:Поправка в формулах выше - x1*A+y1*C+z1*E конечно же, т.к. B=E-A, т.е. они линейно зависимы.
А вообще возьмём для удобства (моего
) x1*E/2+y1*A+z1*C
Если вектора записывать (dx,dy), а угол принять z, тогда:
1. Вектор E: (2,0);
2. Вектор A: (cos(z)+1,sin(z));
4. Вектор C: (cos(z)+1,-sin(z));
Получаем систему:
F1=x1*E/2+y1*A+z1*C=(x1*2+y1*(1+cos(z))+z1*(1+cos(z)),y1*sin(z)-z1*sin(z))
F2=x2*E/2+y2*A+z2*C=(x2*2+y2*(1+cos(z))+z2*(1+cos(z)),y2*sin(z)-z2*sin(z))
F1*F2 должно быть =0 при любых z, получаем:
(x1+y1*(1+cos(z))+z1*(1+cos(z)),y1*sin(z)-z1*sin(z))*(x2+y2*(1+cos(z))+z2*(1+cos(z)),y2*sin(z)-z2*sin(z))=
(x1+y1*(1+cos(z))+z1*(1+cos(z)))*(x2+y2*(1+cos(z))+z2*(1+cos(z)))+(y1*sin(z)-z1*sin(z))*(y2*sin(z)-z2*sin(z))=0
Развернем последнее:
(x1+y1*(1+cos(z))+z1*(1+cos(z)))*(x2+y2*(1+cos(z))+z2*(1+cos(z)))+(y1*sin(z)-z1*sin(z))*(y2*sin(z)-z2*sin(z))=0
Раскроем скобки:
Добавлено спустя 3 минуты 48 секунд:Обозначим для этого пока dos(z)=1+cos(z)
(x1+y1*dos(z)+z1*dos(z))*(x2+y2*dos(z)+z2*dos(z))+(y1*sin(z)-z1*sin(z))*(y2*sin(z)-z2*sin(z))=0
получим:
x1*x2+x1*y2*dos(z)+x2*y1*dos(z)+y1*y2*dos^2(z)+y1*y2*sin^2(z)-y1*z2*sin^2(z)-y2*z1*sin^2(z)+z1*z2*sin^2(z)=0
Добавлено спустя 2 минуты 6 секунд:x1*x2+(x1*y2+x2*y1)*dos(z)+y1*y2*dos^2(z)+(y1*y2-y1*z2-y2*z1+z1*z2)*sin^2(z)=0
Добавлено спустя 8 минут 56 секунд:Теперь вспомним, что такое dos(z)=1+cos(z):
x1*x2+(x1*y2+x2*y1)*(1+cos(z))+y1*y2*(1+2cos(z)+cos^2(z))+(y1*y2-y1*z2-y2*z1+z1*z2)*(1-cos^2(z))=0
Получаем сгруппировав вокруг степеней cos(z) всё:
(x1*x2+x1*y2+x2*y1+y1*y2+y1*y2-y1*z2-y2*z1+z1*z2) +
(x1*y2+x2*y1+2*y1*y2)*cos(z) +
(y1*y2-y1*y2+y1*z2+y2*z1-z1*z2)*cos^2(z) = 0
Упрощаем:
(x1*x2+x1*y2+x2*y1+2*y1*y2-y1*z2-y2*z1+z1*z2) +
(x1*y2+x2*y1+2*y1*y2)*cos(z) +
(y1*z2+y2*z1-z1*z2)*cos^2(z) = 0
или
(x1+y1)*(x2+y2)+(y1-z1)*(y2-z2) +
(x1*y2+x2*y1+2*y1*y2)*cos(z) +
(y1*z2+y2*z1-z1*z2)*cos^2(z) = 0
Интуиция подсказывает мне, что надо иметь нулевые коэффициенты при всех степенях cos(z), чтобы при любых z это было нулём
Добавлено спустя 59 секунд:Т.е. имеем систему:
1) (x1+y1)*(x2+y2)+(y1-z1)*(y2-z2) =0
2) x1*y2+x2*y1+2*y1*y2 =0
3) y1*z2+y2*z1-z1*z2 =0
Разрешима ли она относительно x1,y1,z1,x2,y2,z2 ?