Хороший вопрос!Существует не слишком очевидный ответ, но его легко вычислить:
Давайте назовем ось строки «r» и ось столбца «c», и рассмотрим первое изображение, где экстент по оси r равен5, а экстент по оси c равен 3.
Приращение единицы по оси r относительно плоскости рисования составляет угол +30 = (cos 30 °, sin 30 °) = (sqrt (3) / 2, 0,5), а приращение единицы по оси c составляет -30 = (cos 30 °, -sin 30 °) = (sqrt (3) / 2, -0,5).
Вы должны рассмотреть две диагонали вашего изометрического прямоугольника.На первом рисунке эти диагонали имеют D1 = [+ 5 * U вдоль оси r и + 3 * U вдоль оси c] и D2 = [+ 5 * U вдоль оси r и -3 * U вдоль оси c], где U - длина плитки в изометрической плоскости.При преобразовании в плоскость рисования это становится D1 = ((5 + 3) * sqrt (3) / 2 * U, (5-3) / 2 * U) = (4 * sqrt (3) * U, 1 *U) и D2 = ((5-3) * sqrt (3) / 2 * U, (5 + 3) / 2 * U) = (sqrt (3) * U, 4 * U).Следовательно, ширина и высота экрана являются максимальными из двух экстентов = 4 * sqrt (3) * U, 4 * U.
Это можно обобщить: если есть Nr строк и Nc столбцов, идлина плитки равна U, размеры диагоналей прямоугольника в плоскости рисования составляют D1 = ((Nr + Nc) * sqrt (3) / 2 * U, (Nr-Nc) / 2 * U) и D2 =((Nr-Nc) * sqrt (3) / 2 * U, (Nr + Nc) / 2 * U), поэтому ширина и высота экрана составляют:
W = U*(Nr+Nc)*sqrt(3)/2
H = U*(Nr+Nc)/2