Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.12.2010, 15:03
Аватар для alikoder
alikoder alikoder вне форума
Начинающий
 
Регистрация: 05.12.2007
Сообщения: 126
Репутация: 10
Вопрос Координаты Timage

Доброго вечера всем, объясните глупцу задачку:
Есть Timage на фоме в котором карта(сам рисовал)
На карте есть острова(много)
Как бы так придумать-сообразить, что бы когда наводишь курсор на определенный остров, будет всплывать Hint с уже готовым текстом. Я так понимаю нужно расчитать коардинаты острова, но если он не круглый(квадратный) а произвольной формы.
Очень жду ваших ответов=)
Ответить с цитированием
  #2  
Старый 16.12.2010, 15:15
Аватар для alikoder
alikoder alikoder вне форума
Начинающий
 
Регистрация: 05.12.2007
Сообщения: 126
Репутация: 10
По умолчанию

Есть идейки?
Ответить с цитированием
  #3  
Старый 16.12.2010, 17:23
Аватар для MMM_Corp
MMM_Corp MMM_Corp вне форума
Прохожий
 
Регистрация: 12.12.2010
Сообщения: 37
Репутация: 13
По умолчанию

Да запросто, методов много:

напр. :
1. сохранив отдельно в БД связку - координаты - хинт
2. сохранив отдельно спец-рисунок, где каждый цвет пикселя - определенный хинт и т.д.

а вообще то вам в GIS+Google, не изобретайте велосипедов
Ответить с цитированием
  #4  
Старый 16.12.2010, 17:59
Аватар для alikoder
alikoder alikoder вне форума
Начинающий
 
Регистрация: 05.12.2007
Сообщения: 126
Репутация: 10
По умолчанию

да причем тут велик, мне в проге нужно эта фишка только и всего(для себя так скажем), кто еще, что скажет?
Ответить с цитированием
  #5  
Старый 16.12.2010, 18:38
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Впринципе можно описать примерно по контуру каждого острова ломанную линию (вручную), сохранить точки в массив. Получишь набор замкнутых фигур. Потом есть методы определения, лежит ли точка в обведенной ломанной линией области (один из методов - пробегаешь по всем X, взяв фиксированный Y точки, если пересекло фигуру четное количество раз, значит точка снаружи, нечетное - внутри. Только вот тогда небольшое западло, если точка имеет ту же координату Y, что и какая-то вершина: тогда при плохой реализации вершина посчитается за два пересечения).

А если не хочешь париться - то лучше всего по цвету пикселей: грубо говоря, если больше синего - значит море, иначе - остров.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #6  
Старый 16.12.2010, 19:04
Аватар для alikoder
alikoder alikoder вне форума
Начинающий
 
Регистрация: 05.12.2007
Сообщения: 126
Репутация: 10
По умолчанию

решил сделать так:
Цитата:
procedure TPirat.KartaIMGClick(Sender: TObject);
var
X, Y: integer;
begin
X := EX;
Y := WY ;
if (X > 407) AND (X < 417) AND (Y > 150) AND (Y < 157) then
begin
lll1.Caption := 'Tortuga';
end
end;


теперь думаю как сделать всплывающий хинт с рисунком и текстом вместо "lll1"

Кто подскажет?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:15.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025