如何从斜边返回角度作为参数

时间:2014-07-09 00:11:17

标签: angle hypotenuse

该函数使用相反的腿(y)和相邻的腿(x)从结石返回所得斜边的角度

我不明白这段代码,任何人都可以帮助我吗? (<<>>符号)上下文中的函数

int atan2_cordic(Uint16 y, Uint16 x)
{
Uint16 angle;
int t;
Uint8 b;

// Singular cases
if (y==0) return 0; if (x==0) return 90;  // 0º and 90º

// Rotate until angle is below atan(1/2). Angle in 1/2º units
angle=0;
t=y-x;      
if(t>=0) 
{
angle=90;  
x+=y;         
y=t;
}
t=(y<<1)-x; 
if(t>=0) 
{
angle+=53; 
x<<=1; x+=y;  
y=t;
}
y*=106;  
y/=x; 
y++;  // (x/y)*106 + 1
angle+=y;            // Add previous rotation
b=angle&0x01; 
angle>>=1; 
if (b) angle++;  // divide by 2 with rounding

return angle;
}

0 个答案:

没有答案