같은 의미로는 두 직선이 주어졌을 때 그 사이의 각도를 구하는 것

 

세점 A,B,C 가 있고

각 점은 구조체로써 x, y좌표를 가지고 있다면 

angle(A,B,C) -> 점 B를 중심으로 하는 점 A, B, C 사이의 각도를 구할 수 있다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
struct poly {
   lld x, y;
};
 
#define M_PI 3.14159
 
double angle(poly& a, poly& b, poly& c) {
    double aa, bb, cc;
    double ang, temp;
 
    aa = sqrt(pow(a.x - c.x, 2+ pow(a.y - c.y, 2));
    bb = sqrt(pow(a.x - b.x, 2+ pow(a.y - b.y, 2));
    cc = sqrt(pow(b.x - c.x, 2+ pow(b.y - c.y, 2));
 
    temp = (pow(bb, 2+ pow(cc, 2- pow(aa, 2)) / (2 * bb * cc);
    ang = acos(temp);
    ang = ang * (180 / M_PI);
 
    return ang;
}
 

 

 

+ Recent posts