📄 firgure82.cpp
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -