====== 선분 교차 ====== * 두개의 선분이 서로 교차하는지 여부를 찾는 문제이다. * 먼저 용어 정의를 깔끔하게 하자. * disjoint는 두 선분에 공통으로 포함되는 점이 존재하지 않는것으로, intersecting는 두 선분에 공통으로 포함되는 점이 존재하는 것으로 정의하자. 그러면 intersecting도 다시 여러가지 경우로 나눌수 있다. * crossing: 두 선분에 공통으로 포함되는 점이 한개이고, 그 점은 선분의 끝점이 아니다. * touching: 두 선분에 공통으로 포함되는 점이 한개이고, 그 점은 어떤 선분의 끝점이다. * overlapping: 두 선분에 공통으로 포함되는 점들이 여러개이다 (선분을 이룬다). * containing: 한 선분이 다른 선분에 포함된다. * same: 두 선분이 일치한다. * 친절한 문제에서는 어떤 세 점이 일직선 상에 있는 경우는 존재하지 않는다라는 조건이 주어지는 경우가 있다. * 이 조건에서 intersecting하는 경우는 crossing하는 경우 뿐이다. disjoint와 crossing 두가지의 관계만 존재하다.