Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 의료AI
- 미국 석사
- 미국 박사 궁금증
- 수학
- 미국 대학원
- ai 랭킹
- 수학to파이썬
- error
- github.io
- sudo apt install
- 미국 대학원 진학
- 미국 대학원 준비 타임라인
- 대학원 랭킹
- 썰풀이
- 우분투
- 우분투 오류 해결
- 의료인공지능
- Jekyll
- 파이썬
- 원격 서버 파일 다운 받기
- MedicalAI
- cs 랭킹
- 미국 대학원 준비
- 파이썬 시각화
- sudo apt-get update
- 개인홈페이지
- 미국 유학
- MLB 경기 관람
- 티스토리 행렬 오류
- al-folio
Archives
- Today
- Total
Yehyun Suh
[수학 to 파이썬] 파이썬으로 세 점 사이의 각도 구하기 (1) 본문
세 점 사이의 각도 구하기 (1) - 두 선의 기울기 차이를 이용한 각도 계산
1. 기준점을 (0, 0)으로 바꿔주기
계산 과정을 조금 더 쉽게 이해하기 위해 각도를 계산하는 기준점인 $(x_2, y_2)$를 $(0, 0)$으로 옮긴다. 이때, $\theta_2$는 $\vec{BA}$와 $x$축 사이의 각도이며, $\theta_1$는 $\vec{BC}$와 $x$축 사이의 각도이다.
2. 두 선의 기울기 $\theta_1$과 $\theta_2$ 계산하기
$\theta_2$는 $$\tan\theta_2=\frac{y_1-y_2}{x_1-x_2}\\ \theta_2=\arctan(\frac{y_1-y_2}{x_1-x_2})$$를 통해 구할 수 있고, 비슷한 원리로 $\theta_1$은 $$\tan\theta_1=\frac{y_3-y_2}{x_3-x_2}\\ \theta_1=\arctan(\frac{y_3-y_2}{x_3-x_2})$$ 로 구할 수 있다.
3. 각도 계산하기
위 그림에서 알 수 있듯이, $$\theta=\theta_2-\theta_1$$이므로 $$\theta=\arctan(\frac{y_1-y_2}{x_1-x_2})-\arctan(\frac{y_3-y_2}{x_3-x_2})$$이다.
4. 파이썬 코드
위에서 도출했던 $\theta$를 구하는 식을 코드로 적게 되면 아래와 같다. 참고로 math.atan() 함수는 radian 값을 반환하기 때문에, radian 값을 degree로 바꿔주는 math.degrees() 함수를 사용하여야 한다.
만약 math 라이브러리를 다운 받은 적이 없다면, 터미널에서
pip3 install math
를 실행하여 math 라이브러리를 다운 받는다.
import math
def angle_by_gradient_difference(x1: float, y1: float, x2: float, y2: float,
x3: float, y3: float) -> list:
"""
세 점 사이의 각도를 두 선의 기울기 차이로 계산하는 함수입니다.
Args:
x1 (float): 첫번째 좌표의 x값
y1 (float): 첫번째 좌표의 y값
x2 (float): 두번째 좌표의 x값 - 기준점
y2 (float): 두번째 좌표의 y값 - 기준점
x3 (float): 세번째 좌표의 x값
y3 (float): 세번째 좌표의 y값
Retruns:
세 점 사이의 각도를 반환합니다.
"""
theta1 = math.degrees(math.atan((y3-y2)/(x3-x2)))
theta2 = math.degrees(math.atan((y1-y2)/(x1-x2)))
theta = abs(theta2 - theta1)
return theta
'파이썬 > 수학 to 파이썬' 카테고리의 다른 글
[수학 to 파이썬] 파이썬으로 두 직선 사이의 각도 구하기 (0) | 2023.08.13 |
---|---|
[수학 to 파이썬] 원의 기울어진 각도 구하기 (0) | 2023.08.10 |
[수학 to 파이썬] 파이썬으로 세 점 사이의 각도 구하기 (2) (0) | 2023.08.02 |
[수학 to 파이썬] 파이썬으로 두 직선의 교차점 구하기 (0) | 2023.08.01 |
[수학 to 파이썬] 파이썬으로 점과 선에 투영된 점 좌표 구하기 (0) | 2023.07.26 |