삼각형의 외접원: 외접원의 중심(center of circumcircle of a triangle)
Image Recognition/Fundamental 2012. 10. 19. 20:23
평면 위 세 점
의 두 벡터로 표현이 된다 (원점을
그러면, 변
또,
이 두 직선의 교점이 외접원의 중심이 된다. 매개변수
매개변수
따라서, 외접원의 중심은
여기서, 3개 벡터의 외적의 성질을 이용해서 (평면에서 외적은 숫자이다)
가 항등식으로 성립하고, 또한
따라서,
여기서, 윗 식의 분모를 보면
이므로, 이 값이 0이 아니려면 세 점이 일직선에 있지 않으면 된다.
그런데 이 벡터는 점
또는, 성분으로 표현하면
int circumcenter ( CPoint A, CPoint B, CPoint C, double *xc, double *yc) {
double ax = A.x - C.x, ay = A.y - C.y ;
double bx = B.x - C.x, by = B.y - C.y ;
double asq = ax * ax + ay * ay;
double bsq = bx * bx + by * by;
double ccw = ax * by - ay * bx;
if ( ccw != 0. ) { //세 점임 일직선 위에 있지 않는 경우; 이 경우만 외접원이 정의됨;
*xc = C.x + ( by * asq - ay * bsq ) / ( 2 * ccw ) ;
*yc = C.y + ( -bx * asq + ax * bsq ) / ( 2 * ccw ) ;
return 1;
} else return 0;
}

728x90
'Image Recognition > Fundamental' 카테고리의 다른 글
Histogram Matching (0) | 2012.11.03 |
---|---|
삼각형의 외접원: 외접원의 중심 2(center of circumcircle of a triangle) (9) | 2012.10.20 |
삼각형의 외접원: 외접원의 반지름(radius of circumcircle of a triangle) (0) | 2012.10.13 |
Ellipse Parameters (0) | 2012.10.13 |
float 타입 변수의 절대값은? (0) | 2012.02.17 |