Files
Sun1602/ProgramCommon/Battle.cpp
T
2022-10-26 12:25:11 +08:00

32 lines
730 B
C++

#include "stdafx.h"
#include "battle.h"
bool IsPositionInSector( WzVector * pwvCheckPos,
WzVector * pwvSrcPos,
WzVector * pwvSrcDir,
float fRadian )
{
WzVector v3 = *pwvCheckPos - *pwvSrcPos;
float fRad = atan2(v3.y, v3.x) - atan2( pwvSrcDir->y, pwvSrcDir->x);
return bool(fRad < fRadian && fRad > -fRadian );
}
bool IsPositionInCircleCone(WzVector * pwvSrcPos,
WzVector * pwvSrcDir,
WzVector * pwvCheckPos,
float fRadian )
{
WzVector v3 = *pwvCheckPos - *pwvSrcPos;
// 내적계산으로 각을 정확히 알아낼려면 벡터를 노말라이즈 하여야한다.
VectorNormalize( &v3, &v3 );
float fRad = VectorDotProduct(pwvSrcDir, &v3);
return bool(fRad <= 1.f && fRad >= cos(fRadian) );
}