思路方法
1、以中心点的坐标,求不旋转的情况下矩形的四个顶点坐标;
2、再求按逆时针旋转目标角度后的四个点坐标;
代码实现
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
//坐标点
struct PPoint
{
double x;//坐标点x坐标
double y;//坐标点y坐标
PPoint(double _x, double _y) :x(_x), y(_y) {
};
PPoint() :x(0), y(0) {
};
PPoint(const PPoint &other) :x(other.x), y(other.y) {
};
const PPoint operator=(const PPoint& p)
{
x = p.x;
y = p.y;
return *this;
}
bool operator==(const PPoint& p)
{
return(abs(x - p.x) < 0.0001 && abs(y - p.y) < 0.0001);
}
};
//************************************
// Method: GenerateCarBoundaryPoint
// FullName: GenerateCarBoundaryPoint
// Access: public
// Returns: void
// Qualifier:根据载具中心坐标生成载具四个边界点的坐标
// Parameter: double car_length 载具长
// Parameter: double car_width 载具宽
// Parameter: PPoint & center 中心点
// Parameter: double angle 倾斜角度 非弧度角 [0,36