Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конвертирование координат мышки в изометрические 
:(
    Опции темы
Xrymz
Дата 29.4.2009, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 29.11.2007
Где: дом! О.о

Репутация: нет
Всего: нет



Нужна помощь в нахождении определенного тайла

Нужен алгоритм который сможешь перевести координаты вида mouseX и mouseY от левого верхнего края картинки
в координаты вида (1,0) или (1,7) и т.д. (то есть непосредственно "х" и "у" тайла)

user posted image

PM MAIL ICQ   Вверх
AVA12
Дата 29.4.2009, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: 1
Всего: 4



Главная проблема - узнать координаты выбранной клетки, хоть в какой-нибудь системе. А дальше все просто :)

Клетки задают координатную плоскость 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. Затем переводим в "х и у тайла".

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  cells.gif 4,22 Kb
PM ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0548 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.