#c_sharp #алгоритм #математика #геометрия #вычислительная_геометрия
Есть 5x5 матрица квадратов в произвольной части экрана. Как найти координаты (x, y) в центре каждого квадрата?
Ответы
Ответ 1
координатные оси вправо и вниз l, t, r, b = координаты матрицы s = ширина разделительной линии (отступы по краям ей тоже равны) n, m = количество прямоугольников по вертикали и горизонтали w = (r-l - s * (m+1)) / m h = (t-b - s * (n+1)) / n x0 = l + s + w / 2 y0 = t + s + h / 2 i, j = номера строки и столбца в 0-индексации x = x0 + (w+s)*i y = y0 + (h+s)*j PS: Если значения (даже промежуточные) дробные, то при реализации алгоритма имеет смысл сделать всё одной формулой, чтобы умножение что до деления. PPS: Если отступов по краям нет, то вместо +1 надо использовать -1.
Комментариев нет:
Отправить комментарий