У меня есть эта, казалось бы, простая, но очень запутанная проблема.
Учитывая, что у меня есть набор вершин (x1, y1), (x2, y2), (x3, y3) ...... представляющихдуга.Точки могут быть либо по часовой стрелке, либо против часовой стрелки, но все они расположены одинаково.И я знаю центр дуги (xc, yc).
Как я могу определить, соответствует ли дуга острому / тупому или рефлекторному углу?
Одно очевидное решение - принять разницуatan2 ((last_pt) - (в центре)) и atan2 ((first_pt) - (в центре))).Но если дуга проходит через точку, где PI становится -PI, этот метод ломается.
Кроме того, поскольку точки дуги получаются из довольно зашумленного пиксельного изображения, вершины не совсем гладкие.
Изображение острой и рефлекторной дуги
Я не могу обернуть свой мозг вокруг решения этой проблемы.
Спасибо за помощь!