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

+ Recent posts