如何将一个正方形划分为任意数量的正方形?

时间:2018-10-31 08:01:02

标签: c++

我想知道是否有办法将正方形的区域分成指定数量的较小正方形。 并假设主正方形的尺寸固定为80 * 80。

typedef std::pair<int, int> Point;

class Square
{
Point left_down = {0, 0};
Point up_right;
public:
int lowerB(){ return left_down.first; }
int upperB() { return up_right.first; };

Square(){}
Square(int size) :up_right({size, size}) {};
Square(Point p1, Point p2): left_down(p1), up_right(p2) 
{}

static int number_of_squares;
};
int Square::number_of_squares = 1;

我从Square派生出一个类来形成子正方形:

class Sub_sqr: public Square
{
Point xy1;
Point xy2;

int S_indx; // an identifier

public:
Sub_sqr() { number_of_squares++; }
int indx() { return S_indx; }
};

我尝试了上述算法,对吗?我们得到的实例数等于所拥有的平方数。 例如,如果我们要从大小为80 * 80的正方形中提取256个不重叠的子正方形,则应该有256个sub_sqr类的实例。

我的最终目标是通过将网格划分为相等大小的子正方形来在正方形内制作网格。

Square partitioning

任何评论或帮助将不胜感激。

致谢

0 个答案:

没有答案