Нахождение точек по периметру круга
Мне нужно нарисовать линию от центра круга. Для этого я сначала выбрал центр изображения в качестве центра круга и нарисовал круг с известным радиусом. После этого, используя параметрическое уравнение круга, я просто вычислил x и y по периметру, увеличив угол на 6 градусов.
x = cx + r * cos(a)
y = cy + r * sin(a)
Я использую OpenCV, чтобы сделать все это, где координаты пикселей начинаются с верхнего левого угла. Поэтому моя проблема заключается в том, что для цикла 360 градусов алгоритм должен рисовать 60 линий, но когда угол достигает 120 градусов, он завершает один цикл, и я заметил, что каждая линия отделима около 15 градусов вместо 6 градусов. Ниже мое изображение после 120 градусов.
1 ответ
sin
а также cos
ожидать, что угол будет в радианах. Если вы укажете угол в градусах, фактическая разница будет 6 == 6 - 2 * Pi
что составляет около -16,22°.
Так что просто рассчитайте радианы из градусов:
x = cx + r * cos(a * CV_PI / 180.0)
y = cy + r * sin(a * CV_PI / 180.0)