📄 ffixed.h
字号:
#ifndef FIXED_INCLUDED#define FIXED_INCLUDED#define fixed_1 0x00010000L // fixed 2.0#define fixed2 0x00020000L // fixed 0.5#define fixedHalf 0x00008000L #define infinity 0x7FFFFFFFL#define negInfinity 0x80000000L#define fixedStdErr 0x0000003FL// fixed sqrt(2)#define fixedSqrt2 0x00016A0AL #define FixedRound(a) ((S16)((SFIXED)(a) + 0x8000L >> 16))#define FixedTrunc(a) ((S16)((SFIXED)(a) >> 16))#define FixedCeiling(a) ((S16)(((SFIXED)(a) + 0x8000L) >> 16))#define FixedFloor(a) ((S16)((SFIXED)(a) >> 16 ))#define FixedToInt(a) ((S16)((SFIXED)(a) + 0x8000L >> 16))#define IntToFixed(a) ((SFIXED)(a) << 16)// Fixed integer constant#define FC(a) IntToFixed(a) #define FixedToFloat(a) ((float)(a) / fixed_1)#define FloatToFixed(a) ((SFIXED)((float)(a) * fixed_1))#define FixedToDouble(a) ((double)(a) / fixed_1)#define DoubleToFixed(a) ((SFIXED)((double)(a) * fixed_1))#define FixedAverage(a, b) (((a) + (b)) >> 1)#define FixedAbs(x) ((x) < 0 ? -(x) : (x))#define FixedMin(a, b) ((a) < (b) ? (a) : (b))#define FixedMax(a, b) ((a) > (b) ? (a) : (b))#define FixedEqual(a, b, err) (FixedAbs((a) - (b)) <= err)SFIXED FixedNearestMultiple(SFIXED x, SFIXED factor);// Note that all angles are handled in Fixed point degrees to simplify rounding issues// they are kept in the range of 0 to 360 degrees// Generic Floating point routines for quick porting not fast enough for shipping codeSFIXED FixedMul(SFIXED, SFIXED);SFIXED FixedDiv(SFIXED, SFIXED);SFIXED FixedSin(SFIXED);SFIXED FixedCos(SFIXED);SFIXED FixedTan(SFIXED);SFIXED FixedAtan2(SFIXED dy, SFIXED dx);int _FPMul(int a, int b, int shift);int _FPDiv(int a, int b, int rshift);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -