forked from ndb796/Python-Competitive-Programming-Team-Notes
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathccw.py
More file actions
23 lines (18 loc) · 937 Bytes
/
Copy pathccw.py
File metadata and controls
23 lines (18 loc) · 937 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
''' [ CCW ]
CCW : Counter Clockwise, 평면 위 세 점의 방향관계를 구하는 기하 알고리즘.
점 A, B, C기 있을 때, AB벡터와 AC벡터의 외적값을 반환한다.
반시계 방향(양수), 시계 방향(음수), 평행(0).
외적은 두 벡터에 동시에 수직인 벡터를 구하는 연산이다.
외적으로 방향 관계를 알 수 있는 이유: https://wogud6792.tistory.com/11
외적은 방향 관계 판별 이외에도,
도형의 넓이 구하기, 선분 교차 확인, 도형 만들기 등에 이용된다.
삼각형의 넓이 : (1/2) * 외적 (외적은 평행사변형의 넓이와 같다)
'''
# 외적 구하는 법: 사선 공식
def ccw(x1, y1, x2, y2, x3, y3):
# 역슬래시로 여러줄 입력이 가능하지만,
# 구름IDE에서는 오류로 처리하는 듯
result = x1*y2 + x2*y3 + x3*y1 \
- (x2*y1 + x3*y2 + x1*y3)
return result
print(ccw(1,1,5,5,7,3))