Здравствуйте, igas, Вы писали:
I>Дуга окружности задана тремя точками, соответственно одна из них начало дуги, одна из них — точка через которую дуга проходит и ещё одна — конец дуги. Да и это нужно определить.
Известно ли, которая из них — начало, которая — конец, и которая — промежуточная? Никакие две из этих точек не совпадают? В чём изначально заданы координаты? Какие допуски?
Зачем скорость вычисления? Предполагается, что будет мало дуг, и для каждой много проверяемых точек? Или много и дуг, и точек? Может ли дуга быть больше развёрнутого угла?
Это базовые вопросы для постановки ТЗ, без знания изначальной задачи на них не ответишь.
А так задача почти тривиальна, линейная система, сравнение двух (квадратов) расстояний, плюс поиграться с направленностями. Переход к углам — атан2, не очень дешёвая операция, да и с углами потом отдельные разборки, чтобы понять, кто между кем. Если дуга — (почти) прямая, то с точностью этих углов отдельная проблема.