Пусть у вас есть эллипс. Пусть

—вектор, ортогональный эллипсу и который торчит наружу. Он зависит от точки на эллипсе:

, причём точка с радиус-вектором

должна лежать на эллипсе (=удовлетворять его уравнению). Если в точке

касательная вертикальная, то

горизонтален и наоборот: если в точке

касательная горизонтальная, то

вертикален.
В данном случае у вас эллипс расположен как попало, но известны точки

и

вертикальности и горизонтальности касательной в "обычной" системе координат. Предположите, что ваш эллипс повёрнут на угол

против часовой стрелки. Перейдите матрицей поворота в эту систему координат, где её оси лежат вдоль осей эллипса, назовём её "правильной", радиус-векторы будем в ней обозначать

:

и пересчитайте векторы

,

в "правильную" систему координат.
В этой системе координат легко написать, чему равен нормальный вектор

. В точках

и

он не будет ни вертикальным, ни горизонтальным в "правильной" системе координат. Вы делаете следующее: определяете

,

и при помощи матрицы

перегоняете их в "обычную" систему координат, где они должны быть горизонтальны и вертикальны. Решаете уравнение на угол

(если вам известно, чему равны полуоси, достаточно одного уравнения, но из этого принципа их получается два - по одному на каждый вектор (уравнение состоит в том, что та или иная компонента обнуляется)).
Если полуоси не известны, нужно добавить ещё два уравнения: точки

и

лежат на эллипсе. Система может оказаться несовместной.
(Надеюсь, что не сказал лажи)