⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 angle.cpp

📁 墨香最新私服
💻 CPP
字号:
// Angle.cpp: implementation of the CAngle class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Angle.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

void CAngle::AdjustAngleIn_0to360()
{
	while(m_fAngle >= 360)
		m_fAngle -= 360;

	while(m_fAngle < 0)
		m_fAngle += 360;
}

void CAngle::SetAngleDeg(float fDeg)
{
	m_fAngle = fDeg;
	AdjustAngleIn_0to360();
}

void CAngle::SetAngleRad(float fRad)
{
	SetAngleDeg(RADTODEG(fRad));
}

void CAngle::SetTargetDeg(float fDeg)
{	
	m_fStartAngle = m_fAngle;
	m_fTargetAngle = fDeg;
	m_fChangeAmount = m_fTargetAngle - m_fStartAngle;

	if(m_fChangeAmount > 180)
		m_fChangeAmount -= 360;

	if(m_fChangeAmount <= -180)
		m_fChangeAmount += 360;

#ifdef _ANGLE_DEBUG_
	FILE* fp = fopen("debug.txt","a+");
	fprintf( fp,"%4.2f     %4.2f     %4.2f \n\r", m_fStartAngle,m_fTargetAngle,m_fChangeAmount);
	fclose(fp);
#endif
}

void CAngle::SetTargetRad(float fRad)
{
	SetTargetDeg(RADTODEG(fRad));
}

void CAngle::SetRotateDeg(float fRotateDeg)
{
	m_fStartAngle = m_fAngle;
	m_fTargetAngle = m_fAngle + fRotateDeg;
	m_fChangeAmount = fRotateDeg;
}
void CAngle::SetRotateRad(float fRotateRad)
{
	SetRotateDeg(RADTODEG(fRotateRad));
}

void CAngle::Process(float fRate)
{
	ASSERT(fRate >= 0);
	ASSERT(fRate <= 1);

	m_fAngle = m_fStartAngle + m_fChangeAmount * fRate;

	AdjustAngleIn_0to360();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -