2013-08-15 3 views
1

У меня есть три точки A (a1, a2), B (b1, b2), C (c1, c2). Как нарисовать дугу через три точки и вычислить угол дуги.Проведите дугу через три точки opencv

Спасибо всем.

[ЗДЕСЬ] http://photo.ssc.vn/view.php?filename=374df.png

+0

Какая дуга? Круг? Квадратное? Кубический сплайн? – sav

+0

Круг. Но я просто хотел получить дугу через 3 очка. см. рисунок для более подробной информации. Спасибо –

+0

http://opencv.willowgarage.com/documentation/python/drawing_functions.html – sav

ответ

0

В том случае, если вы выбираете квадратичная вы будете иметь

у = ах * х + Ьх + с

три точки 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 - Центр

Найдите углы между этими векторами. Вы ищете самый большой острый угол. Вы можете использовать точечный продукт для расчета угла.

+0

Как рассчитать угол дуги. –

Смежные вопросы