2016-04-06 4 views
0

Как рассчитать угол секторов на две точки, радиус, центр круга. Я стараюсь это: (p1, p2 - точки в окружности, центр - центр круга)Как рассчитать угол секторов по двум точкам, радиус, центр круга

startAngle = (int)(180/Mathf.PI * Mathf.Atan2(p1.y - center.y, p1.x - center.x)); 
endAngle = (int)(180/Mathf.PI * Mathf.Atan2(p2.y - center.y, p2.x - center.x)); 

ответ

1

То, что вы выглядит хорошо для меня, если вы хотите, чтобы измерить углы в градусах против часовой стрелки вокруг оси х.

Here it is in Latex, с индексом нулевого количества, являющимся центром круга.

1

Вы можете найти угол между векторами до первой точки и ко второй точке с использованием поперечного произведения и скалярного произведения. Такой подход дает подписанный (направленный) угол.

dy1 = p1.y - center.y; 
dx1 = p1.x - center.x; 
dy2 = p2.y - center.y; 
dx2 = p2.x - center.x; 
SectorAngle = Mathf.Atan2(dx1*dy2-dx2*dy1, dx1*dx2+dy1*dy2)