본문 바로가기

게임 수학9

게임 수학 - 벡터의 사칙연산, 외적 게임에서 플레이어 A가 (2, 5) 에 존재하고 몬스터 B가 (3, 1) 에 존재한다고 가정하자. 플레이어 A가 몬스터 B를 향해 이동하려면 x는 1만큼 증가하고 y는 4만큼 감소해야 몬스터의 위치에 도달할 수 있을것이다. 덧셈과 뺄셈은 벡터의 이동을 나타내는 거라고 볼 수 있다. 몬스터 B의 값 - 플레이어 A를 한다면 (3, 1) - (2, 5) = (1, -4) 우리가 원하는 플레이어A에서 몬스터B를 향한 방향이 나온다. 물론 이 값은 노멀라이즈 하지 않아서 방향과 크기까지 같이 가지고 있는 것이긴 하다. 여기서잠깐! 노멀라이즈란???? 쉽게 말해서 빗변이 1인 벡터를 말한다. (1, -4)는 빗변이 루트 17인 벡터인데 이것을 루트17로 나누면 빗변이 1이될것이다. 이와 같은 것들을 노멀라이즈 라.. 2023. 7. 20.
게임 수학 - 회전 3장 / 회전 공식 아래 처럼 반지름이 1인 원이 있다고 한다. 그리고 원의 둘레에 한점(A)이 있다. (사이 각도는 a로 부르겠다) 무엇이 보이는가? 바로 직각 삼각형이다. 이러면 전 포스트에서 알게된 sin과 cos으로 A점의 x와 y를 구할 수 있다. (A의 x는 Ax, A의 y는 Ay로 표기하겠다.) Ax = cos(a) * 빗변 , Ay = sin(a) * 빗변 빗변은 반지름이 1인 원이기 때문에 1이므로 Ax = cos(a) , Ay = sin(a) 가 된다. 이제 이 점을 회전시켜 보자. A점을 각도 (세타) 만큼 회전시켜서 B점이 된다고 설정하겠다. 한번에 구할수는 없고 Ax를 먼저 세타각도 만큼 회전시켜서 나오는 Q점을 먼저 구해야 한다. Q점은 반지름이 1이기 때문에 쉽게 구할 수 있다. 그렇다면 Q점에서.. 2023. 7. 20.
게임 수학 - 회전 2장 / sin과 cos 다시 회전을 알기위해선 sin과 cos을 알아야 한다. 자세한 설명은 하지 않고 공식정도만 짚고 넘어가겠다. sin cos은 각도와 빗변을 알고있으면 밑변과 높이를 알수있다. 라는게 중요하다.. 해당 공식을 게임상의 좌표로 생각한다면. 플레이어가 A에 있고, 몬스터가 B에 있다고 생각해보자. A에 있는 플레이어 기준으로 몬스터는 ( x = 밑변, y = 높이) 만큼 떨어져 있는것이다. 이때 밑변과 높이는 모르지만, 각도와 빗변을 알고있다고 한다면. x = cos(세타) * 빗변 ; y = sin(세터) * 빗변; 로 표현할 수 있을 것이다. 그렇다면! 빗변이 1이라면? x = cos(세타) * 1 ; y = sin(세터) * 1 ; 결국엔 cos과 sin만 남아서 x = cos(세타) ; y = sin(.. 2023. 7. 20.
게임 수학 - 회전에 대해서 1장 / 라디안과 디그리; 게임에 있어서 회전은 셀수없이 많이 사용된다. 예를 들어 캐릭터의 방향전환, 투사체를 발사하는 각도 또한 회전이 사용 되었다고 볼 수 있다. 이를 알고 적절히 사용하기 위해서 공식과 개념을 정리해 보겠다. 회전을 수행하기 위해서는 각도가 중요하다. ex) A캐릭터가 보는 방향을 45도 회전 하겠다. 이처럼 회전에서는 각도가 빠질 수 없는 요소이다. 각도는 각도법과 호도법으로 나타낼 수 있는데, 우리가 아는 45도, 30도 이런 표기는 각도법 이라하며 Degree 라고 한다. 라디안은 1 rad 라고 쓰며 라디안 (Radian)으로 읽고 이를 호도법이라 합니다.. 각도법은 우리가 흔히 알고있으니 넘어가고, 호도법에대해 설명하자면 부채꼴 호의 길이는 중심각 a에 비례하므로 원의 둘레와 부채꼴 호의 길이를 이.. 2023. 7. 20.