
(CLRS) 알고리즘의 역할
2020, Apr 10
- 이 글은 CLRS(Introduction to algorithm) 책을 요약한 것이므로 자세한 내용은 CLRS 책을 참조하시기 바랍니다.
- CLRS 내용 외에 따로 정리한 선분의 성질 관련 블로그 글은 아래 링크를 참조하시기 바랍니다.
CCW
: https://gaussian37.github.io/math-algorithm-ccw/선분의 교차
: https://gaussian37.github.io/math-algorithm-line_intersection/
목차
-
선분의 정의
-
선분 관련 문제
-
벡터 곱
선분의 정의
- 점 p1=(x1,y1),p2=(x2,y2)이 있을 때, 선분(
line segment
) ¯p1p2는 양 끝점을 p1,p2로 합니다. - 이 때, 선분 위의 점들을 (x3,y3) 라고 하면, (x1,y1),(x2,y2)와 다음 관계를 가집니다.
- x3=αx1+(1−α)x2
- y3=αy1+(1−α)y2
- $$ \text{where, } 0 \ge \alpha \le 1
- 만약 선분이 아니라 방향 성분이 필요한 방향 선분(
directed segment
)라면 →p1p2라고 정의해야 합니다. - 만약 p1이 원점이라면 방향 선분 →p1p2 를 벡터 →p2로 나타낼 수 있습니다.
선분 관련 문제
- 이 책에서 다루는 선분과 관련된 대표적인 문제는 아래 3가지 입니다.
- ① →p1p2,→p0p2에 대해 →p0p2가 →p0p1의 시계 방향에 있는가? (두 선분의 방향성)
- 이 문제의 경우 두 선분의 시작점이 둘 다 p0 인 것에 유의하시면 됩니다.
- ② →p1p2,→p0p2에 대해 →p0p1을 순회한 다음 →p1p2를 순회할 때, 점 p1에서 좌회전 하는가?
- 이 문제는 ①과 유사하지만 첫번째 방향 선분의 끝점이 두번쨰 방향 선분의 시작점이 된다는 차이점이 있습니다.
- ③ ¯p1p2와 ¯p3p4가 서로 교차하는가?
- 위 3가지 문제를 어떻게 해결하는 지 이 글에서 자세하게 다루어 보도록 하겠습니다.