API
-
API를 활용한 반사벡터 구현Algorithm with C/Math 2020. 10. 3. 18:22
먼저, 아래의 영상을 보자. 이것이 우리가 만들 것이다. 위의 내용에 필요한 부분이 바로 반사벡터이다. 이에 대해 알아보자. 위의 그림과 같이 MoveVec이 있다고 가정하자. 공이 왼쪽 벽을 향해 부딪힌다는 경우. ( MoveVec은 우리는 알고 있다고 가정 ) 그러면 공의 반사벡터를 구할 수 있다. 먼저, 약간의 해답을 제시하면 공의 이동벡터인 MoveVec의 x방향과 y방향을 이용하면 구 할 수 있다. 그림을 좀 더 자세히 그려보면 이 된다. 위의 그림을 한 번만 더 자세히 그리면 아래와 같이 나타낼 수 있다. 이번에 공이 위쪽 벽에 부딪힌 경우에 대해서 간략적으로 그리면 즉, 위의 규칙을 통해서 다음과 같은 결론을 내릴수 있다. 공이 왼쪽과 오른쪽 벽에 충돌했다고 하면 공의 이동벡터는 ( -1* ..
-
API활용으로 공의 튀어오름을 구현(포물선 운동)Algorithm with C/Math 2020. 10. 3. 17:46
그래프와 공식 출처 http://terms.naver.com/entry.nhn?docId=941198&cid=47338&categoryId=47338 포물선 운동 수평면과 θ의 각으로 던져 올린 물체의 운동을 분석해 보면 수평 방향으로는 등속도 운동을 하고 연직 방향으로는 연직 위로 던져 올린 물체의 운동과 같음을 알 수 있다. ① 포물선의 식 : ② �� terms.naver.com 위 공식1번 포물선의 식을 다시 쓰면 아래와 같다. 변수들부터 정의하자. 아래의 변수들은 모두 전역 변수들이다. 구현한 세 함수들 위의 함수에서 공이 착지를 할 때마다 속도를 줄이는데, 이 줄어든 속도는 절대 0이하로 떨어지지 않기 때문에 (로직 상 속도를 25%씩 감소 시키는 방향으로 만들었기 때문) 적당히 작은 값 이하..
-
API를 활용한 이차함수를 이용해 점프 기능 만들기Algorithm with C/Math 2020. 10. 2. 17:17
a가 양수냐, 음수냐에 따라서 이차함수의 그래프의 개형이 달라진다. 그림 출처 : terms.naver.com/entry.nhn?docId=945470&cid=47324&categoryId=47324 이차함수의 그래프 [ 1. y = ax2의 그래프(a ≠ 0)] ⑴ 꼭짓점은 원점 (0, 0) ⑵ 대칭축: x = 0(y축) ⑶ a > 0이면 아래로 볼록 a < 0이면 위로 볼록 ⑷ |a|가 클수록 y축에 가깝다(폭이 좁다). [ 2. y = a(x - m)2 + n의 그래프] y = ax2의 terms.naver.com 글의 제목에서 말했듯이 이차함수를 게임에서 접목하는 부분은 점프를 만드는데 활용할 수 있다. 위의 식보다는 간편하게 위와 같이 쓰도록 하자. 위 식의 그래프를 그려보면, 아래와 같다. 보..
-
API를 활용한 점과 직선 사이의 거리Algorithm with C/Math 2020. 10. 1. 20:46
점과 직선 사이의 거리를 증명부터 해보자. 아래와 같이 직선과 직선 외부의 점 P가 있다고 하자. 점과 직선 사이의 거리를 증명해보자. 직선 PH의 기울기와 직선 m의 기울기를 각 각 구해보자. 두 직선의 기울기의 곱이 -1이 된다는 사실을 이용해서 식을 쓰면 점과 직선 사이의 거리를 구하는 함수 구현 프로그램상에서 구현하기 위해서 기존의 직선의 방정식에서 다음과 같은 방정식을 사용한다. y = ax + r 즉, 이항을 해서 다음의 형태로 바꾸어 주도록 하자. 즉, 직선을 일반형으로 표현하자. ax - y + r = 0 위의 공식에 a는 a를 대입하고, b대신 -1을 대입하고 c대신 r을 대입하면 된다. 즉, 기울기a와 r값만 구하면 된다. 구현에서 직선은 즉, 고정적이다. 즉, 직선은 시작점과 끝점을 ..
-
프로젝트 생성 및 윈도우 창 띄우기Win API/1. 프로젝트 생성하기 2020. 9. 30. 08:05
Visual Studio 2019를 실행시킨다. 그리고 새 프로젝트 만들기를 선택한다. Windows 데스크톱 마법사를 선택한다. 적당한 프로젝트 이름을 정하고 만들기를 선택한다. 애플리케이션 종류는 데스크톱 애플리케이션을 선택하고, 추가 옵션은 빈 프로젝트를 선택한다. 여기서 빈 프로젝트가 아닌 미리 컴파일된 헤더를 선택해서 프로젝트를 만들어도 된다. 만약, 미리 컴파일된 헤더를 선택해서 만들었다면 프로젝트 명과 동일한 cpp파일이 있다. 이 cpp파일의 내용을 지우고 아래의 내용을 복사해서 만들어도 된다. 다만 그대로 컴파일을 하면 아래와 같은 컴파일 에러가 발생한다. 이는 다음과 같이 인클루드를 해주면 된다. 소스 파일에서 cpp파일을 하나 생성한다. Winmain.cpp 파일에 다음의 내용을 복사..