📄 radar.c
字号:
#include "Robot.h"
//用户设置的想要转动的转角
static double angle = 0;
//雷达的当前方向
static double heading = 0;
//最大转动速度
static const double MAX_VELOCITY_TURN = (45 * 3.14 / 180);
/////////////////////////////////////////////////////////////////////
/*
* 设置所要转动的角度,用于控制雷达的方向
* 注意:当参数angle为正的时候,让雷达逆时针方向旋转
* 当参数angle为负的时候,让雷达顺时针方向旋转
* 雷达的最大转动速度为45度/单位时间,弧度就是(PI/4)/单位时间
*/
void turnRadar(double a)
{
angle = a;
}
/*
* 得到用户想用转动的角度的剩余量
* 比如:上个单位时间,用户用turn(Math.toRadians(50))让雷达旋转50度
* 但是雷达的最大旋转速度为45度/单位时间,所以这个单位时间调用getTurnRemaining()
* 会得到返回值0.08754(5/180*PI),说明还有5度需要转动,如果用户此时没有新的turn函数的调用
* 那么下个单位时间雷达将会只转动5度
*/
double getRadarTurnRemaining()
{
return angle;
}
/*
* 得到当前的雷达方向
*/
double getRadarHeading()
{
return heading;
}
/*
* 设置当前方向
*/
void setRadarHeading(double h)
{
heading = h;
//重新计算要转的角度
if (angle >= 0)
{
if( angle < MAX_VELOCITY_TURN )
angle = 0;
else angle -= MAX_VELOCITY_TURN;
}else{
if( angle > - MAX_VELOCITY_TURN )
angle = 0;
else angle += MAX_VELOCITY_TURN;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -