⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 radar.c

📁 以AIROBOT为平台构建的一个智能机器人。主源码见main.c。其余为使用的函数接口定义
💻 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 + -