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

📄 area.h

📁 东北大学机器人足球队决策系统设计.开发环境使用 VS.NET 2003 调试 DLL 程序方法: 启动 VS.Net 选择“工具”菜单
💻 H
字号:
/****************************************************************************************************
area.h 艾数机器人区域头文件

Purpose:
	球场区域管理

author:
	yy_cn

Created Time:
	2006-5-11
****************************************************************************************************/

#ifndef __ROBOT_AREA_H__
#define __ROBOT_AREA_H__

#include "base.h"

////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 区域信息
//
class AreaInfo
{
public:
	/**
		* x1,y1 - x2,y2 两个点描述出球场上的一个局部区域
		* area 当前区域
		*/
	AreaInfo (double x1, double y1, double x2, double y2, BallArea area)
		: _x1 (x1)
		, _y1 (y1)
		, _x2 (x2)
		, _y2 (y2)
		, _area (area)
	{
	}
	~AreaInfo (void)
	{
	}
	
	/**
	 * x,y 点是否在当前区域内
	 */
	bool isInside (double x, double y)
	{
		if (x >= _x1 && x <= _x2 && y <= _y1 && y >= _y2)
			return true;
		else
			return false;
	}

	/**
	 * 获得区域的四个坐标点
	 */
	void getPos (double &x1, double &y1, double &x2, double &y2)
	{
		x1 = _x1;
		y1 = _y1;
		x2 = _x2;
		y2 = _y2;
	}
	
	BallArea getArea (void) const
	{
		return _area;
	}

protected:
	double  _x1,
			_y1,
			_x2,
			_y2;
	BallArea _area;
}; // end class AreaInfo

////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 区域管理
//
class AreaManager
{
public:
	AreaManager (void);
	~AreaManager (void);

	/**
	 * 添加一个区域
	 */
	void addArea (double x1, double y1, double x2, double y2, BallArea area);
	
	/**
	 * 获得 x,y 所在的区域
	 */
	const AreaInfo *getArea (double x, double y);
	
protected:	
	vector<AreaInfo *> _areas;
}; // end class AreaManager

#endif // __ROBOT_AREA_H__

⌨️ 快捷键说明

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