Как определить, какая часть круга находится в момент нажатия под курсором, зная лишь его координаты (x, y) и радиус круга?
Вообще-то ещё координаты центра круга нужны. Ну, будем считать что они есть (x0, y0).
Тогда это задачка на тригонометрию школьного уровня.
Где-то вначале нужно проимпортировать модуль math:
Вот части определяющей функции:
1) Нужно убедиться, что курсор не вышел за пределы круга.
if (x-x0)**2 + (y-y0)**2 > R: # Не попал в круг вообще
return None
2) Нужно определить, в каком секторе курсор.
dx = x - x0
dy = y - y0
if dy == 0: # Попали на горизонтальный диаметр
return 7 if dx > 0 else 1
cos_fi = dx/(dy**2 + dx**2)
fi = math.acos(cos_fi)
num_sector = math.floor(fi / math.pi)
if dy > 0: # Это сверху
return num_sector + 7
else: # Это снизу
return 6 - num_sector
Я не проверял, работает ли мой бред, мог где-нибудь и накосячить…