728x90
반응형
- 삼각 함수 -
- 각도를 이용할때 필요하다 (발사체의 각도를 알기위해 사용 , 혹은 캐릭터의 대각선 이동)
- Sin(사인) , Cos(코사인) , Tan(탄젠트) - 탄젠트는 나중에 다룬다.
- 위 3개는 중등 수학 내용이므로 생략
- 사인 , 코사인 의 비율 그래프
- 위 그래프는 빗변의 길이가 1일때 , 기준각의 각도에 따른 코사인 , 사인의 값을 나타낸 그래프이다.
- 공학용 계산기를 이용하여 , 사인과 코사인 의 값을 쉽게 구할수 있다.
- 빗변은 1이라는 가정을 하는 이유는 사인과 코사인의 비율이 빗변 기준이기 때문에 - 항등원 - 비율이 된다.
- 즉 각도를 알면 X와 Y의 변위량을 구할수있다 .
- #include 를 포함하고 아래와 같은 함수로 X,Y의 변위량을 구할수있다.
- A(각도-라디안) 만큼 D(빗변)만큼 이동했을때 변위량
- delta X = Cos(A) x D
- delta Y = Sin (A) x D - 이떄 , 얻어오는 값은 데카르트 좌표계가 아니기에 - 로 바꿔주어서 원하고자 하는 값을 얻는다.
- 디그리 (Degrees) : 우리가 일반적으로 알고있는 각도이다.
- 라디언 (Radians) : 라디언은 호의 길이로 , 180 도에 대한 라디언은 우리가 알고있는 파이(3.141592~) 이다
즉 1 Rad = PI / 180 이다 .
약 : 0.017453 29251994329576923690768489 쯤 됨
- 두점을 주고 각을 찾기 -
- arc 코사인 , 사인을 이용해서 찾는다.
- 빗변 d , 밑변 x , 높이 y 기준 으로 아래와 같은 공식이 된다.
- acos( x / d ) , asin( y / d ) , atan( y / x )
- 예외 처리 -> y의 값에 따라 (+-) 각도가 바뀐다. - 아래 그림과 같은 상황이면 비교가 같아진다.
- 무슨말이냐면 , 단순히 빗변 d , 밑변 x , 높이 y 기준으로만 판단 하기 때문에 , 180도 까지만 판단을 할수있다.
- 즉 Y 축에 따른 예외 처리를 해주어서 360도에 대한 각을 구해준다.
- 그림 1
- 요약
- 전체적인 흐름
- 두점을 안다 -> 서로의 거리를 안다 . 목표지점에서 시작지점을 뺀다 ( End - Start = 두 점 사이의 거리 )
- 위 공식으로 각 점(X,Y) 사이의 변이량을 구한다 (deltaX , deltaY) -*delta는 변이량을 의미
- 대각선 (빗변)의 거리를 구한다
- distance(빗변) = sqrt( deltaX * deltaX + deltaY * deltaY );
- 각을 구한다 ( 공식을 사용 )
- float angle = acos( deltaX / distance );
- 각도에 대한 변이량을 구한다
- float deltaX = cos( Radians ) * distance(이동량);
- float deltaY = -sin( Radians ) * distance(이동량);
728x90
반응형
'back-end > C & API' 카테고리의 다른 글
싱글톤 define 에 선언해서 편하게쓰기 (0) | 2023.07.20 |
---|---|
직선의방정식 (0) | 2023.07.20 |
동치 연산자 (0) | 2023.06.22 |
shorten url 축약주소 함수 (0) | 2023.06.22 |
DX SDK d3dx9.h 를 참조할 수 없을 때 (0) | 2023.06.22 |