• actan函数 查表法


    const unsigned int atan2buf[] = { 
    0x00000000,0x00000065,0x000000C9,0x0000012E,0x00000192,0x000001F7,0x0000025B,0x000002C0,
    0x00000324,0x00000389,0x000003ED,0x00000452,0x000004B7,0x0000051B,0x00000580,0x000005E4,
    0x00000649,0x000006AD,0x00000712,0x00000777,0x000007DB,0x00000840,0x000008A5,0x00000909,
    0x0000096E,0x000009D3,0x00000A37,0x00000A9C,0x00000B01,0x00000B65,0x00000BCA,0x00000C2F,
    0x00000C94,0x00000CF8,0x00000D5D,0x00000DC2,0x00000E27,0x00000E8C,0x00000EF1,0x00000F55,
    0x00000FBA,0x0000101F,0x00001084,0x000010E9,0x0000114E,0x000011B3,0x00001218,0x0000127D,
    0x000012E2,0x00001347,0x000013AC,0x00001412,0x00001477,0x000014DC,0x00001541,0x000015A6,
    0x0000160C,0x00001671,0x000016D6,0x0000173C,0x000017A1,0x00001806,0x0000186C,0x000018D1,
    0x00001937,0x0000199C,0x00001A02,0x00001A67,0x00001ACD,0x00001B33,0x00001B98,0x00001BFE,
    0x00001C64,0x00001CCA,0x00001D2F,0x00001D95,0x00001DFB,0x00001E61,0x00001EC7,0x00001F2D,
    0x00001F93,0x00001FF9,0x0000205F,0x000020C5,0x0000212C,0x00002192,0x000021F8,0x0000225E,
    0x000022C5,0x0000232B,0x00002392,0x000023F8,0x0000245F,0x000024C5,0x0000252C,0x00002593,
    0x000025F9,0x00002660,0x000026C7,0x0000272E,0x00002795,0x000027FC,0x00002863,0x000028CA,
    0x00002931,0x00002998,0x000029FF,0x00002A66,0x00002ACE,0x00002B35,0x00002B9D,0x00002C04,
    0x00002C6C,0x00002CD3,0x00002D3B,0x00002DA2,0x00002E0A,0x00002E72,0x00002EDA,0x00002F42,
    0x00002FAA,0x00003012,0x0000307A,0x000030E2,0x0000314A,0x000031B3,0x0000321B,0x00003283,
    0x000032EC,0x00003354,0x000033BD,0x00003426,0x0000348E,0x000034F7,0x00003560,0x000035C9,
    0x00003632,0x0000369B,0x00003704,0x0000376D,0x000037D7,0x00003840,0x000038AA,0x00003913,
    0x0000397D,0x000039E6,0x00003A50,0x00003ABA,0x00003B24,0x00003B8E,0x00003BF8,0x00003C62,
    0x00003CCC,0x00003D36,0x00003DA0,0x00003E0B,0x00003E75,0x00003EE0,0x00003F4A,0x00003FB5,
    0x00004020,0x0000408B,0x000040F6,0x00004161,0x000041CC,0x00004237,0x000042A2,0x0000430E,
    0x00004379,0x000043E5,0x00004451,0x000044BC,0x00004528,0x00004594,0x00004600,0x0000466C,
    0x000046D8,0x00004745,0x000047B1,0x0000481D,0x0000488A,0x000048F7,0x00004963,0x000049D0,
    0x00004A3D,0x00004AAA,0x00004B17,0x00004B84,0x00004BF2,0x00004C5F,0x00004CCD,0x00004D3A,
    0x00004DA8,0x00004E16,0x00004E84,0x00004EF2,0x00004F60,0x00004FCE,0x0000503D,0x000050AB,
    0x0000511A,0x00005188,0x000051F7,0x00005266,0x000052D5,0x00005344,0x000053B3,0x00005423,
    0x00005492,0x00005502,0x00005571,0x000055E1,0x00005651,0x000056C1,0x00005731,0x000057A1,
    0x00005812,0x00005882,0x000058F3,0x00005964,0x000059D5,0x00005A46,0x00005AB7,0x00005B28,
    0x00005B99,0x00005C0B,0x00005C7C,0x00005CEE,0x00005D60,0x00005DD2,0x00005E44,0x00005EB6,
    0x00005F28,0x00005F9B,0x0000600E,0x00006080,0x000060F3,0x00006166,0x000061D9,0x0000624D,
    0x000062C0,0x00006334,0x000063A7,0x0000641B,0x0000648F,0x00006503,0x00006577,0x000065EC,
    0x00006660,0x000066D5,0x0000674A,0x000067BF,0x00006834,0x000068A9,0x0000691F,0x00006994,
    0x00006A0A,0x00006A80,0x00006AF6,0x00006B6C,0x00006BE2,0x00006C59,0x00006CCF,0x00006D46,
    0x00006DBD,0x00006E34,0x00006EAB,0x00006F23,0x00006F9A,0x00007012,0x0000708A,0x00007102,
    0x0000717A,0x000071F2,0x0000726B,0x000072E4,0x0000735D,0x000073D6,0x0000744F,0x000074C8,
    0x00007542,0x000075BB,0x00007635,0x000076AF,0x0000772A,0x000077A4,0x0000781F,0x00007899,
    0x00007914,0x0000798F,0x00007A0B,0x00007A86,0x00007B02,0x00007B7E,0x00007BFA,0x00007C76,
    0x00007CF2,0x00007D6F,0x00007DEC,0x00007E68,0x00007EE6,0x00007F63,0x00007FE0,0x0000805E,
    0x000080DC,0x0000815A,0x000081D8,0x00008257,0x000082D6,0x00008355,0x000083D4,0x00008453,
    0x000084D2,0x00008552,0x000085D2,0x00008652,0x000086D2,0x00008753,0x000087D4,0x00008855,
    0x000088D6,0x00008957,0x000089D9,0x00008A5A,0x00008ADC,0x00008B5F,0x00008BE1,0x00008C64,
    0x00008CE7,0x00008D6A,0x00008DED,0x00008E71,0x00008EF4,0x00008F78,0x00008FFD,0x00009081,
    0x00009106,0x0000918B,0x00009210,0x00009295,0x0000931B,0x000093A1,0x00009427,0x000094AD,
    0x00009534,0x000095BA,0x00009641,0x000096C9,0x00009750,0x000097D8,0x00009860,0x000098E8,
    0x00009971,0x000099FA,0x00009A83,0x00009B0C,0x00009B95,0x00009C1F,0x00009CA9,0x00009D34,
    0x00009DBE,0x00009E49,0x00009ED4,0x00009F5F,0x00009FEB,0x0000A077,0x0000A103,0x0000A190,
    0x0000A21C,0x0000A2A9,0x0000A336,0x0000A3C4,0x0000A452,0x0000A4E0,0x0000A56E,0x0000A5FD,
    0x0000A68C,0x0000A71B,0x0000A7AB,0x0000A83A,0x0000A8CA,0x0000A95B,0x0000A9EC,0x0000AA7C,
    0x0000AB0E,0x0000AB9F,0x0000AC31,0x0000ACC3,0x0000AD56,0x0000ADE9,0x0000AE7C,0x0000AF0F,
    0x0000AFA3,0x0000B037,0x0000B0CB,0x0000B160,0x0000B1F5,0x0000B28A,0x0000B320,0x0000B3B5,
    0x0000B44C,0x0000B4E2,0x0000B579,0x0000B610,0x0000B6A8,0x0000B740,0x0000B7D8,0x0000B870,
    0x0000B909,0x0000B9A3,0x0000BA3C,0x0000BAD6,0x0000BB70,0x0000BC0B,0x0000BCA6,0x0000BD41,
    0x0000BDDD,0x0000BE79,0x0000BF15,0x0000BFB2,0x0000C04F,0x0000C0EC,0x0000C18A,0x0000C228,
    0x0000C2C7,0x0000C366,0x0000C405,0x0000C4A5,0x0000C545,0x0000C5E5,0x0000C686,0x0000C727,
    0x0000C7C9,0x0000C86B,0x0000C90D,0x0000C9B0,0x0000CA53,0x0000CAF6,0x0000CB9A,0x0000CC3F,
    0x0000CCE3,0x0000CD89,0x0000CE2E,0x0000CED4,0x0000CF7A,0x0000D021,0x0000D0C8,0x0000D170,
    0x0000D218,0x0000D2C0,0x0000D369,0x0000D413,0x0000D4BC,0x0000D567,0x0000D611,0x0000D6BC,
    0x0000D768,0x0000D814,0x0000D8C0,0x0000D96D,0x0000DA1A,0x0000DAC8,0x0000DB76,0x0000DC25,
    0x0000DCD4,0x0000DD83,0x0000DE33,0x0000DEE4,0x0000DF95,0x0000E046,0x0000E0F8,0x0000E1AB,
    0x0000E25E,0x0000E311,0x0000E3C5,0x0000E479,0x0000E52E,0x0000E5E3,0x0000E699,0x0000E750,
    0x0000E806,0x0000E8BE,0x0000E976,0x0000EA2E,0x0000EAE7,0x0000EBA0,0x0000EC5A,0x0000ED15,
    0x0000EDD0,0x0000EE8B,0x0000EF47,0x0000F004,0x0000F0C1,0x0000F17F,0x0000F23D,0x0000F2FC,
    0x0000F3BB,0x0000F47B,0x0000F53C,0x0000F5FD,0x0000F6BF,0x0000F781,0x0000F844,0x0000F907,
    0x0000F9CB,0x0000FA8F,0x0000FB55,0x0000FC1A,0x0000FCE1,0x0000FDA8,0x0000FE6F,0x0000FF37,
    0x00010000,0x000100C9,0x00010193,0x0001025E,0x00010329,0x000103F5,0x000104C2,0x0001058F,
    0x0001065D,0x0001072B,0x000107FA,0x000108CA,0x0001099A,0x00010A6B,0x00010B3D,0x00010C10,
    0x00010CE3,0x00010DB6,0x00010E8B,0x00010F60,0x00011036,0x0001110C,0x000111E4,0x000112BC,
    0x00011394,0x0001146E,0x00011548,0x00011623,0x000116FE,0x000117DA,0x000118B8,0x00011995,
    0x00011A74,0x00011B53,0x00011C33,0x00011D14,0x00011DF6,0x00011ED8,0x00011FBB,0x0001209F,
    0x00012184,0x00012269,0x00012350,0x00012437,0x0001251F,0x00012607,0x000126F1,0x000127DB,
    0x000128C6,0x000129B2,0x00012A9F,0x00012B8D,0x00012C7C,0x00012D6B,0x00012E5C,0x00012F4D,
    0x0001303F,0x00013132,0x00013226,0x0001331A,0x00013410,0x00013507,0x000135FE,0x000136F7,
    0x000137F0,0x000138EA,0x000139E5,0x00013AE1,0x00013BDF,0x00013CDD,0x00013DDC,0x00013EDC,
    0x00013FDD,0x000140DF,0x000141E2,0x000142E6,0x000143EB,0x000144F0,0x000145F8,0x00014700,
    0x00014809,0x00014913,0x00014A1E,0x00014B2A,0x00014C37,0x00014D46,0x00014E55,0x00014F66,
    0x00015077,0x0001518A,0x0001529E,0x000153B3,0x000154C9,0x000155E0,0x000156F9,0x00015812,
    0x0001592D,0x00015A49,0x00015B66,0x00015C84,0x00015DA4,0x00015EC4,0x00015FE6,0x00016109,
    0x0001622E,0x00016353,0x0001647A,0x000165A2,0x000166CC,0x000167F6,0x00016922,0x00016A4F,
    0x00016B7E,0x00016CAE,0x00016DDF,0x00016F12,0x00017045,0x0001717B,0x000172B1,0x000173E9,
    0x00017523,0x0001765E,0x0001779A,0x000178D7,0x00017A17,0x00017B57,0x00017C99,0x00017DDD,
    0x00017F22,0x00018068,0x000181B0,0x000182F9,0x00018444,0x00018591,0x000186DF,0x0001882F,
    0x00018980,0x00018AD3,0x00018C27,0x00018D7D,0x00018ED5,0x0001902F,0x0001918A,0x000192E6,
    0x00019445,0x000195A5,0x00019707,0x0001986A,0x000199CF,0x00019B36,0x00019C9F,0x00019E0A,
    0x00019F76,0x0001A0E4,0x0001A254,0x0001A3C6,0x0001A53A,0x0001A6B0,0x0001A827,0x0001A9A1,
    0x0001AB1C,0x0001AC9A,0x0001AE19,0x0001AF9A,0x0001B11D,0x0001B2A3,0x0001B42A,0x0001B5B3,
    0x0001B73F,0x0001B8CC,0x0001BA5C,0x0001BBEE,0x0001BD82,0x0001BF18,0x0001C0B0,0x0001C24B,
    0x0001C3E7,0x0001C586,0x0001C727,0x0001C8CB,0x0001CA71,0x0001CC19,0x0001CDC3,0x0001CF70,
    0x0001D11F,0x0001D2D1,0x0001D485,0x0001D63B,0x0001D7F4,0x0001D9B0,0x0001DB6E,0x0001DD2E,
    0x0001DEF1,0x0001E0B7,0x0001E27F,0x0001E44A,0x0001E618,0x0001E7E8,0x0001E9BB,0x0001EB91,
    0x0001ED6A,0x0001EF45,0x0001F123,0x0001F304,0x0001F4E8,0x0001F6CF,0x0001F8B9,0x0001FAA6,
    0x0001FC96,0x0001FE88,0x0002007E,0x00020277,0x00020473,0x00020673,0x00020875,0x00020A7B,
    0x00020C84,0x00020E90,0x0002109F,0x000212B2,0x000214C9,0x000216E2,0x000218FF,0x00021B20,
    0x00021D44,0x00021F6C,0x00022197,0x000223C6,0x000225F9,0x0002282F,0x00022A69,0x00022CA7,
    0x00022EE9,0x0002312F,0x00023378,0x000235C6,0x00023818,0x00023A6D,0x00023CC7,0x00023F25,
    0x00024187,0x000243ED,0x00024658,0x000248C7,0x00024B3A,0x00024DB2,0x0002502E,0x000252AF,
    0x00025534,0x000257BE,0x00025A4D,0x00025CE0,0x00025F78,0x00026215,0x000264B7,0x0002675E,
    0x00026A0A,0x00026CBB,0x00026F71,0x0002722C,0x000274ED,0x000277B3,0x00027A7E,0x00027D4F,
    0x00028026,0x00028302,0x000285E3,0x000288CB,0x00028BB8,0x00028EAB,0x000291A4,0x000294A3,
    0x000297A8,0x00029AB3,0x00029DC4,0x0002A0DC,0x0002A3FB,0x0002A71F,0x0002AA4B,0x0002AD7D,
    0x0002B0B5,0x0002B3F5,0x0002B73B,0x0002BA89,0x0002BDDD,0x0002C139,0x0002C49C,0x0002C807,
    0x0002CB79,0x0002CEF2,0x0002D274,0x0002D5FD,0x0002D98E,0x0002DD27,0x0002E0C8,0x0002E471,
    0x0002E823,0x0002EBDD,0x0002EFA0,0x0002F36C,0x0002F740,0x0002FB1D,0x0002FF04,0x000302F3,
    0x000306EC,0x00030AEF,0x00030EFB,0x00031311,0x00031730,0x00031B5A,0x00031F8E,0x000323CD,
    0x00032816,0x00032C69,0x000330C8,0x00033531,0x000339A6,0x00033E26,0x000342B1,0x00034748,
    0x00034BEB,0x0003509A,0x00035556,0x00035A1D,0x00035EF2,0x000363D3,0x000368C2,0x00036DBD,
    0x000372C6,0x000377DD,0x00037D02,0x00038235,0x00038776,0x00038CC6,0x00039225,0x00039793,
    0x00039D11,0x0003A29E,0x0003A83B,0x0003ADE8,0x0003B3A6,0x0003B974,0x0003BF54,0x0003C545,
    0x0003CB48,0x0003D15C,0x0003D784,0x0003DDBD,0x0003E40A,0x0003EA6A,0x0003F0DE,0x0003F766,
    0x0003FE02,0x000404B4,0x00040B7A,0x00041256,0x00041949,0x00042051,0x00042771,0x00042EA8,
    0x000435F7,0x00043D5E,0x000444DE,0x00044C78,0x0004542B,0x00045BF9,0x000463E1,0x00046BE5,
    0x00047405,0x00047C42,0x0004849B,0x00048D13,0x000495A9,0x00049E5E,0x0004A733,0x0004B029,
    0x0004B940,0x0004C279,0x0004CBD4,0x0004D553,0x0004DEF6,0x0004E8BF,0x0004F2AD,0x0004FCC3,
    0x00050700,0x00051166,0x00051BF5,0x000526B0,0x00053196,0x00053CA8,0x000547E9,0x00055359,
    0x00055EF9,0x00056ACB,0x000576CF,0x00058307,0x00058F75,0x00059C19,0x0005A8F6,0x0005B60C,
    0x0005C35D,0x0005D0EC,0x0005DEB8,0x0005ECC5,0x0005FB14,0x000609A7,0x0006187F,0x0006279F,
    0x00063709,0x000646BF,0x000656C4,0x00066718,0x000677C0,0x000688BD,0x00069A12,0x0006ABC2,
    0x0006BDD0,0x0006D03E,0x0006E310,0x0006F649,0x000709EC,0x00071DFC,0x0007327E,0x00074776,
    0x00075CE6,0x000772D4,0x00078944,0x0007A03A,0x0007B7BB,0x0007CFCD,0x0007E873,0x000801B5,
    0x00081B98,0x00083621,0x00085158,0x00086D43,0x000889E9,0x0008A752,0x0008C586,0x0008E48C,
    0x0009046E,0x00092535,0x000946EB,0x0009699A,0x00098D4D,0x0009B20F,0x0009D7EE,0x0009FEF7,
    0x000A2736,0x000A50BC,0x000A7B97,0x000AA7D9,0x000AD593,0x000B04DA,0x000B35C0,0x000B685C,
    0x000B9CC6,0x000BD317,0x000C0B69,0x000C45DA,0x000C828A,0x000CC199,0x000D032C,0x000D476C,
    0x000D8E82,0x000DD89D,0x000E25EF,0x000E76B0,0x000ECB1B,0x000F2371,0x000F7FFA,0x000FE106,
    0x001046EA,0x0010B206,0x001122C3,0x00119997,0x00121703,0x00129B97,0x001327F6,0x0013BCD5,
    0x00145B00,0x0015035D,0x0015B6F1,0x001676E5,0x0017448D,0x0018216E,0x00190F4A,0x001A102B,
    0x001B2672,0x001C54E8,0x001D9EDA,0x001F0835,0x002095AF,0x00224CFD,0x00243517,0x0026569A,
    0x0028BC49,0x002B73C6,0x002E8E9A,0x003223B0,0x0036519A,0x003B4205,0x00412F4C,0x00486DB7,
    0x00517BB6,0x005D1FF3,0x006CA58F,0x0082608E,0x00A2F8FD,0x00D94C4B,0x0145F2C4,0x028BE5EC,
    };

    signed short atan2s16(signed short y, signed short x)
    {
    signed short i;
    unsigned int z;

    if(x == 0)
    {
    if (y == 0) i = 0;
    else i = 1023;
    }
    else
    {
    z = ((y < 0) ? (0 - y) : (y)) * 65536u / ((x < 0) ? (0 - x) : (x));
    i = 0;
    if (atan2buf[i + 512] <= z) i += 512;
    if (atan2buf[i + 256] <= z) i += 256;
    if (atan2buf[i + 128] <= z) i += 128;
    if (atan2buf[i + 64] <= z) i += 64;
    if (atan2buf[i + 32] <= z) i += 32;
    if (atan2buf[i + 16] <= z) i += 16;
    if (atan2buf[i + 8] <= z) i += 8;
    if (atan2buf[i + 4] <= z) i += 4;
    if (atan2buf[i + 2] <= z) i += 2;
    if (atan2buf[i + 1] <= z) i += 1;
    }
    i = i * 900 / 1024;

    if (y < 0)
    {
    if (x < 0)
    i = i - 1800;
    else
    i= -i;
    }
    else
    {
    if (x < 0)
    i= -i + 1800;
    //else
    // i = i;
    }

    if(i < 0)
    i += 3600;

    return i;


    }
  • 相关阅读:
    Lerning Entity Framework 6 ------ Defining Relationships
    Lerning Entity Framework 6 ------ Defining the Database Structure
    Lerning Entity Framework 6 ------ Introduction to TPH
    Lerning Entity Framework 6 ------ Introduction to TPT
    Lerning Entity Framework 6 ------ Using a commandInterceptor
    Lerning Entity Framework 6 ------ A demo of using Entity framework with MySql
    C#是否该支持“try/catch/else”语法
    Hadoop学习之旅三:MapReduce
    CLR via C# 摘要二:IL速记
    Java 制表符 " "
  • 原文地址:https://www.cnblogs.com/crazyxu/p/2380141.html
Copyright © 2020-2023  润新知