firgure82.cpp

来自「AI-CODE坦克机器人 《C++语言学习利器 —AI-CODE坦克机器人》-」· C++ 代码 · 共 50 行

CPP
50
字号
#include <airobot/cpp/SimpleRobot.hpp>

#define MOVE_VELOCITY 5   	//移动的速度
//转动的速度(要保证路径为圆形,必须能够被360整除)
#define TURN_VELOCITY Math::toRadians(3)
/**
 * 画8机器人设计
 */
class Figure8 : public SimpleRobot
{
	private:
	//弧线的半径
	double R = MOVE_VELOCITY/TURN_VELOCITY;
	public:
		void onRoundBegin(RoundBeginAction action)	{
		while(true)	{
			move(MOVE_VELOCITY);
			turn(TURN_VELOCITY);
			waitforRadians(Math::toRadians(270));
			turn(0);
			waitforDistance(R*2);			
			turn(-TURN_VELOCITY);
			waitforRadians(Math::toRadians(270));
			turn(0);
			waitforDistance(R*2);
		}
	}

	//等待机器人转动指定的弧度
	void waitforRadians(double radians)	{
		int time = (int)(radians/TURN_VELOCITY);
		for(int i=0; i<time; i++) delay();
	}
	
	//等待机器人移动指定的距离
	void waitforDistance(double distance)	{
		int time = (int)(distance/MOVE_VELOCITY);
		for(int i=0; i<time; i++) delay();
	}	
};

/**
 * 机器人程序入口
 */
int main(int argC, char* argV[])
{
	Robot* robot = new Figure8();
	return startup(argC, argV, robot);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?