-
기준 좌표(0,0)에서 두 좌표간의 각도 구하기 (벡터, 내적)알고리즘과 언어/common 2022. 1. 24. 17:43
기준 좌표(0,0)에서 (x, y)와 (a, b) 두 좌표 간의 각도를 구해보자.
단, (x,y)나 (a,b)가 (0,0)이면 안된다.
1. 첫 번째 좌표(벡터)의 크기를 구한다.
#include <cmath> double v1 = sqrt(pow(x, 2) + pow(y, 2))
2. 두번째 좌표(벡터)의 크기를 구한다.
#include <cmath> double v2 = sqrt(pow(a, 2) + pow(b, 2))
3. 백터의 내적을 구한다.
백터의 내적에 대한 공식 #include <cmath> double inner = (x * a) + (y * b)
4. 각을 계산하기 위해 방정식에 값을 대입한다.
#include <cmath> double theta = acos(inner / (v1 * v2))
*acos는 cmath라이브러리에서 지원하는 역 코사인 함수다.*
반환된 세타를 각도(ex. 60도)로 고치기 위해서는
#include <cmath> theta = (theta * M_PI) / 180
*M_PI 는 cmath에서 제공하는 파이 상수다.*
느낀 점)
처음으로 선형대수학의 필요성을 느꼈다.
나처럼 문제에 맞닥뜨려 당황한 문과생을 위해 쉽게 풀이한 방법이며, 역 코사인과 내적에 대해 더 공부할 필요가 있다.
참조 사이트 :
https://www.mathway.com/ko/popular-problems/Trigonometry/392481
두 벡터 사이의 각 구하기 (1.8,-2.0) , (3.8,-1.4) | Mathway
벡터의 크기를 구하려면, 벡터의 각 성분을 제곱하여 더한 다음 제곱근을 취한 값을 계산합니다.
www.mathway.com
https://engineershelp.tistory.com/31
【수학,공학】rad (radian) ↔ 도 (˚) 회전 단위 변환하기
대학 4학년 1학기는 어떻게 보냈는지 나중에 알아보려고 도서관을 다닐 때마다 밑에 사진처럼 자리표를 끈어서 보관했었습니다. 결과는 3월달 0개, 4월달 31개, 5월달 23개, 6월달 20개였습니다. 1학
engineershelp.tistory.com
https://rangsub.tistory.com/15
[Algorithm] [C++] 부채꼴 범위 안의 적 판별하기
해당 문제는 최근 한 기업의 입사 코딩테스트에서 나왔던 문제입니다. 유명한 온라인 게임 리그오브레전드의 '애쉬' 챔피언이 스킬을 사용하는 그림이 이 문제의 설명을 돕는 이미지로 출제 되
rangsub.tistory.com
'알고리즘과 언어 > common' 카테고리의 다른 글
다익스트라 알고리즘 (0) 2022.03.02 플로이드-워샬 알고리즘 (Floyd-Warshall Algorithm) (0) 2021.07.16