방준선

42일차(3-02) 삼각함수

쥬신게임개발학원/2. 윈도우 API를 이용하여 2D어플리케이션 개발

백그라운드를 감싸는 원을 만들고 중심에서 반지름만큼 떨어진 원에서 몬스터 생성


Regeneration_Monster

{

CGameObject* pGameObject;

for(int i = 0; i <20; ++i)

{

pGameObject = CMonster::Create();

if(nullptr == pGameObject)

return false;

CObject_Manager::Get_Instance()->Add_..

}

}


메인앱에 dwTime 변수 (리젠 시간용)

dwTime은 이니셜라이즈 리스트에서 초기화

메인앱-업데이트에서 리젠 몬스터 호출




몬스터의 위치!

거리와 각도(랜덤)를 알면 내접하는 원의 자리를 알 수 있다

사인 코사인 탄젠트

코사인이 가장 많이 쓰지 않을까(추후에 내접..)


삼각함수

점 2개가 있으면 직각 삼각형을 만들 수 있다


피타고라스의 정의

밑변제곱 높이제곱 빗변의 제곱


직각삼각형의 하나의 각은 90도(직각) 하나의 각은 임의의 각일때

밑변/빗변 = 1/루트2


45도 1:1:빗변의 길이?(->루트2)->1/루트2->2/2루트2

30도 1:1:


수학의 함수 Y=2x + 1

Y = 각도


삼각함수: 각도와 Y, Y에 따른 빗변/높이 밑변/높이

사인: 

사인 세타:직각삼각형일때 하나의 각도가 세타일 때 빗변/높이

코사인 : 빗변/밑변

코사인 세타:직각삼각형일때 하나의 각도가 세타일 때 빗변/밑변

탄젠트 : 밑변/높이


나는 빗변의 길이와 높이를 알고 있다->밑변의 길이와 높이를 알면 x,y를 구할 수 있다

몬스터가 태어나는 x1 y1을 알 고 싶다!

->나는 x와 y를 알고(BG의 중심), 임의의 각과 임의의 빗변을 안다

->밑변의 길이와 높이를 알면 x1, x2를 알 수 있다

x1 = x+밑변

y1 = y-높이


밑변 = 빗변의 길이 * 코사인 세타

높이 = 빗변의 길이 * 사인 세타 


cosf(임의의 각) = 코사인세타

각도가 고정적이면 코사인세타는 일정하다

->임의의 각은 Degree가 아니다


math.h에서 사용하는 각도의 단위

각도가 커질수록 원의 호의 길이가 늘어난다 -> 라디안

원의 호의 길이 = 2*파이(원주율->360도 일때의 라디안)*r(반지름)

180도 = 파이

90도 = 2/파이

1도 일때의 라디안 = 2파이/360 = 파이/180


//각도

m_fAngle = rand() % 360;

//빗변의 길이

m_fDistance = 50.f; 


m_fX =WINSIZEX * 0.5f + m_fDistance * cosf(m_fAngle * (3.14f / 180.f());

m_fY = WINSIZEY * 0.5f + m_fDistance * sinf(m_fAngle * (3.14f / 180.f());

'쥬신게임개발학원 > 2. 윈도우 API를 이용하여 2D어플리케이션 개발' 카테고리의 다른 글

프린스  (1) 2017.07.21
프린스 작업  (1) 2017.07.17
페르시아  (1) 2017.07.11
pop2  (1) 2017.07.06
43일차(3-03) VLD 메모리 릭 체크  (1) 2017.07.03