참고 소스
각도를 0에서 360사이로 변경하는 방법
부산밴댕이
2012. 12. 26. 19:22
#include
#include
using namespace std;
int main(){ const int maxLoop = 1000000000;
{
float fAngle = 90.f;
const time_t startTime = time(0);
for( int i = 0; i < maxLoop; ++i ) {
volatile float clamppedAngle = fmod( fAngle, 360.f );
}
const time_t endTime = time(0);
cout << endTime - startTime << endl;
}
{
float fAngle = 90.f;
const time_t startTime = time(0);
for( int i = 0; i < maxLoop; ++i ) {
volatile float clamppedAngle = (( fAngle < 0.f ) ? - fAngle : fAngle);
while( clamppedAngle >= 360.f )
clamppedAngle -= 360.f;
}
const time_t endTime = time(0);
cout << endTime - startTime << endl;
}
{
float fAngle = 90.f;
const time_t startTime = time(0);
for( int i = 0; i < maxLoop; ++i ) {
volatile float clamppedAngle = (360.f/65536) *((int)(fAngle*(65536/360.f)) & 65536);
}
const time_t endTime = time(0);
cout << endTime - startTime << endl;
}
{
float fAngle = 90.f;
const time_t startTime = time(0);
for( int i = 0; i < maxLoop; ++i ) {
volatile float clamppedAngle = fAngle - ((int) fAngle / 360) * 360.f;
}
const time_t endTime = time(0);
cout << endTime - startTime << endl;
}
} |
<실행 결과>
26
5
3
5