Вы можете действительно легко увидеть, как изменение параметров влияет на рисование эллипса. Вот простой код для этого:
import numpy as np
import cv2
center = (200, 200) # x,y
axes = (100, 75) # first, second
angle = 0. # clockwise, first axis, starts horizontal
for i in range(360):
image = np.zeros((400, 400, 3)) # creates a black image
image = cv2.ellipse(image, center, axes, angle, 0., 360, (0,0,255))
image = cv2.ellipse(image, center, axes, angle, 0., i, (0,255,0))
cv2.imshow("image", image)
cv2.waitKey(5)
cv2.waitKey(0)
cv2.destroyAllWindows()
Это будет что-то вроде:
Давайте рассмотрим параметры:
center -> x и y кортеж, где центр эллипса.
оси -> радиус первой и второй осей (половина общего размера). Первый - горизонтальный, если применяется угол 0, второй - вертикальный.
angle -> Угол всего эллипса, т. Е. Если вы перемещаете по часовой стрелке первую ось
startAngle -> где вы хотите начать рисовать свою дугу, например 0 будет похоже на мой пример изображения (по первой оси), но если угол имеет значение, то 0 будет вращаться так же.
endAngle -> там, где вы хотите остановить рисование, вы можете видеть, что я изменяю его в моем примере для рисования растущего эллипса.
Если вы хотите, чтобы дуга окружности радиусом 50px, скажем, от 60 градусов до 120 градусов, но против часовой стрелки (360 - start / endAngle) вы можете сделать:
image = cv2.ellipse(image, (100,100), (50,50), 0.0, 360-120, 360-60, (0,255,0))
Если у вас есть сомнения по поводу любого из них, не стесняйтесь спрашивать в комментарии