Рассчитать начальный и конечный углы эллиптической дуги с учетом двух векторов

Я работаю над программой, которая рисует фигуры на основе ввода файла cgm. Я пытаюсь нарисовать эллиптическую дугу, и она дает начальную часть в виде начального и конечного вектора от центра дуги. Мне нужна помощь в расчете угла к вектору, чтобы я мог рисовать.

Я пытался использовать стандарт atan2 (y / x), но потом я обнаружил, что он действителен для кругов, а не для эллипсов.

Это изображение дает пример того, что я пытаюсь сделать. Я ищу углы А и Б.

редактировать: это связано с моим другим вопросом Вот. (Также обратите внимание, что этот вопрос основан на математике, стоящей за моей проблемой, в то время как другой вопрос был о помощи в программировании с qt.)

Вики-страница на эллипсы вроде показывает, почему математика не работает, но я не уверен, как ее реализовать.

Пример эллиптического угла

0

Решение

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

Просто рассчитайте один раз угол между осью X и линией от начала координат до точки (75,50). Это дано arctan(50/75) = 33.69°. А по симметрии он такой же, как угол к точке (75, -50).

Тогда, с помощью простой тригонометрии, для угла A ты получаешь A = 360° - 33.69°тогда как для B ты получаешь B= 180° + 33.69°,

принимая во внимание Aэто та же информация, которая получается atan2(-50, 75), Тем не менее, результат atan2 находится в (i) в радианах и (ii) в диапазоне [-pi, pi], Вы могли бы добавить 2*pi и выразить это в углах, и вы получите тот же результат, что и выше.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]