Как рассчитать размер заданного количества прямоугольников, которые покрывают большую площадь - PullRequest
2 голосов
/ 04 октября 2011

Я работаю над проектом, в котором у нас есть заданная область (1000 x 1300). Мне нужно математическое уравнение, чтобы я мог ввести целое число и разбить его на равные формы.

Так что, если мне нужно разбить эту область на 170 «кирпичиков», уравнение должно сказать мне, что каждый кирпич должен иметь размер 100px x 60 px (это только пример)

Ответы [ 2 ]

0 голосов
/ 04 октября 2011

Вы можете сделать это простым (не зависит от языка):

overallHeight = 1300;
overallWidth = 1000;

numberOfBricks = 170;
squareRootOfBrickCount = sqrt(numberOfBricks);

brickHeight = int(overallHeight/squareRootOfBrickCount);
brickWidth = int(overallWidth/squareRootOfBrickCount);

Для самых правых и самых нижних кубиков вам нужно будет добавить любые дополнительные пиксели, которые были пропущены из-за int операция при расчете:

extraHeight = overallHeight - (int(squareRootOfBrickCount) * brickHeight);
extraWidth = overallWidth - (int(squareRootOfBrickCount) * brickWidth);
0 голосов
/ 04 октября 2011

Термин, который вы ищете, называется тесселяцией; как всегда Википедия имеет хорошую статью об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...