У меня есть три точки A (a1, a2), B (b1, b2), C (c1, c2). Как нарисовать дугу через три точки и вычислить угол дуги.Проведите дугу через три точки opencv
Спасибо всем.
[ЗДЕСЬ] http://photo.ssc.vn/view.php?filename=374df.png
У меня есть три точки A (a1, a2), B (b1, b2), C (c1, c2). Как нарисовать дугу через три точки и вычислить угол дуги.Проведите дугу через три точки opencv
Спасибо всем.
[ЗДЕСЬ] http://photo.ssc.vn/view.php?filename=374df.png
В том случае, если вы выбираете квадратичная вы будете иметь
у = ах * х + Ьх + с
три точки A (x1, y1) B (х2, у2) С (х3, у3)
Это дает систему линейных
у1 = ax1 * х + BX1 + с
у2 = ax2 * х + bx2 + с
y3 = ax3 * х + Ьх3 + с
Что может быть решена для а, Ь и с
В том случае, если вы используете круг, используйте
Emgu.CV.PointCollection.MinEnclosingCircle
Это даст вам объект типа CircleF, который имеет свойство Center типа PointF.
Найти векторы между точками и центром.
Va = А - Центр
Vb = B - Центр
Vc = C - Центр
Найдите углы между этими векторами. Вы ищете самый большой острый угол. Вы можете использовать точечный продукт для расчета угла.
Как рассчитать угол дуги. –
Какая дуга? Круг? Квадратное? Кубический сплайн? – sav
Круг. Но я просто хотел получить дугу через 3 очка. см. рисунок для более подробной информации. Спасибо –
http://opencv.willowgarage.com/documentation/python/drawing_functions.html – sav