Есть сетка квадратных тайлов, мы делаем её "изометрической": поворачиваем на 45°, скейлим по
'y' на 0.8, задаём необходимые координаты.
Затем, нужно получить старые координаты вершин (как будто сетка не была повёрнута). Кликаем поочерёдно по вершинам, по CLICK выполняем функцию:

Код AS3:
var mtrx:Matrix = new Matrix();
mtrx.translate(-grid.x, -grid.y); // сдвигаем назад на ноль
mtrx.scale(1, 1.2); // скейлим обратно в бОльшую сторону
mtrx.rotate(-Math.PI/4); // поворачиваем обратно на 45°
var pnt:Point = mtrx.transformPoint(new Point(mouseX, mouseY)); // получаем здесь нужную нам точку
Результаты кликов по красным вершинам:

Код:
(x = 0, y = 0)
(x = 49, y = 0)
(x = 98, y = -1)
(x = 147, y = -2)
(x = 196, y = -2)
Результаты кликов по зелёным вершинам:

Код:
(x = 0, y = 0)
(x = 0, y = 49)
(x = -1, y = 97)
(x = -2, y = 146)
(x = -3, y = 197)
Ширина клетки = 50 пикселей, считает ПОЧТИ правильно. Откуда выпадает эта ошибка-погрешность? Что я не учёл?
Чтобы было понятнее:
Клики должны выдавать:

Код:
(x = 0, y = 0)
(x = 50, y = 0)
(x = 100, y = 0)
...
(x = 0, y = 50)
(x = 0, y = 100)
(x = 0, y = 150)
...