Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Конвертирование координат мышки в изометрические |
Автор: Xrymz 29.4.2009, 19:53 |
Нужна помощь в нахождении определенного тайла Нужен алгоритм который сможешь перевести координаты вида mouseX и mouseY от левого верхнего края картинки в координаты вида (1,0) или (1,7) и т.д. (то есть непосредственно "х" и "у" тайла) |
Автор: AVA12 29.4.2009, 21:43 |
Главная проблема - узнать координаты выбранной клетки, хоть в какой-нибудь системе. А дальше все просто :) Клетки задают координатную плоскость Ouv, проекции ее осей наклонены под некоторым углом к осям Ox и Oy. Проекции диагоналей клеток параллельны осям Oxy, их длины равны dx и dy. Считаем, что положительные направления проекций осей Ouv "смотрят" в положительном направлении оси Ox. Считаем, что длины сторон клеток в координатах Ouv равны 1. Тогда изменение координаты x на +-dx изменяет координаты u и v на +-1, изменение координаты y на +-dy изменяет u на -+1 и v на +-1. То есть: ux = x/dx, vx = x/dx uy = -y/dy, vy = y/dy u = ux + uy = x/dx - y/dy v = vx + vy = x/dx + y/dy Переводим (x; y) в (u; v), отбрасываем дробную часть и получаем координаты клеток в Ouv. Затем переводим в "х и у тайла". |