과제겸 공부겸 게임 수학 관련해서 프로그래밍한 코드 쭉 올립니다
게시글에는 딱히 이론에 대한 이야기는 없으니 먼저 이론을 알고 계셔야 코드 이해하실 수 있을 거예요
지금은 벡터나 행렬 코드보다 이후 설명드릴 내용의 기반 해더 구조를 잡겠습니다.
보여드릴 MathRoot.h, RootHeader.h 그리고 Math.h들은 벡터나 행렬들을 사용할 때,
외부 라이브러리처럼 사용할 수 있게 하는 것과 동시에 해더 충돌을 방지합니다.
사용자의 개발 환경에 따라서 변경해주세요. (만약 기존의 다른 곳에서 math.h를 사용중이라면)
- RootHeader.h // 프로그램 전반적인 기반 해더
- MathRoot.h // 앞으로 프로그래밍할 벡터나 행렬, 변환 등에 공통적으로 포함될 게임수학 기반 해더
- MathRoot.cpp // 디그리 가디안 각도함수는 여러곳에서 많이 쓰이므로 MathRoot에 있음. 해더에 함수를 정의해도 되지만 해더 포함 구조가 이리저리 복잡할 경우 문제를 일으킬 수 있으므로 따로 cpp 파일을 사용
- Math.h // 완성된 벡터, 행렬, 변환등을 모두 포함하는 해더로 외부에서 게임수학을 사용할 때 이것만 포함하면 된다
RootHeader.h
#ifndef ROOTHEADER_H
#define ROOTHEADER_H
/* vector, iostream을 제외하고는 연산 결과를 시각화해서 테스트하기 위한 해더입니다.
사용 환경에 따라서 변경해 사용해주세요 */
#include <windows.h>
#include <time.h>
#include <vector>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#endif
MathRoot.h
#ifndef ROOTMATH_H
#define ROOTMATH_H
// 저는 해더 경로가 상위파일을 가리키고 있지만 이것도 역시 사용환경에 따라 변경해주세요
#include "../../RootHeader.h"
#include <math.h>
#define PI 3.14159265
float radToDeg(float radian);
float degToRad(float degree);
#endif
MathRoot.cpp
#include "RootMath.h"
float radToDeg(float radian)
{
return radian * 180.0f / PI;
}
float degToRad(float degree)
{
return degree * PI / 180.0f;
}
Math.h
#ifndef GMATH_H
#define GMATH_H
// 외부에서 게임수학 이용을 위해 이 해더만 포함하면 되게 설계했습니다
#include "RootMath.h"
#include "Vector.h"
#include "Matrix.h"
#endif
다음글: 게임 수학 C++ | 2. 벡터
https://mpi-devlog.tistory.com/25
게임 수학 C++ | 2. 벡터
이전글: 게임 수학 C++ | 1. 기반 https://mpi-devlog.tistory.com/24 게임 수학 C++ | 1. 기반 과제겸 공부겸 게임 수학 관련해서 프로그래밍한 코드 쭉 올립니다 게시글에는 딱히 이론에 대한 이야기는 없으��
mpi-devlog.tistory.com
'개발 > 게임\그래픽스' 카테고리의 다른 글
게임 수학 C++ | 3. 행렬 & 변환 (0) | 2020.05.23 |
---|---|
게임 수학 C++ | 2. 벡터 (0) | 2020.05.22 |
WinAPI_비트맵 실습 (0) | 2019.12.29 |
WinApi 메모장 (0) | 2019.11.08 |
2019_Under the Chamber (0) | 2019.10.26 |