Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Вниз

Снова вопрос "организации алгоритма"   Найти похожие ветки 

 
Click   (2006-11-15 14:29) [0]

Возникла следующая задача (предыдущая успешно решена здесь: http://delphimaster.net/view/15-1163148108/ :) )....
Опять же готового кода не прошу и примеров тоже, прошу наставить на путь истинный :))
Исходные данные:
Есть некое изображение (неважно файл *.bmp или *.jpg or etc) на этом изображении хаотично нарисованы одинаковые .... ну например квадратики (далее объекты) (одинаковые - значит: одинакового цвета, размера и т.д.) фон на котором они нарисованы может быть любым.. (т.е. на белом, любом однотонном фоне или фотографии).
Все вместе назовем это "картой".
Задача:
Необходимо при открытии сей карты в моей программе в тех местах где обозначены объекты разместить какой-либо контрол, например кнопку...
Решение:
Как такового нет ...
есть идея к каждой карте прикреплять файл с координатами, затем при открытии располагать объекты согласно считанным из файла координатам... - Но! Есть у меня подозрение что это можно сделать значительно грамотней...
Так вот просьба: если есть идеи или может кто-то уже занимался этой задачей подсказать наиболее "удобный" путь решения задачи.
Спасибо!
Если есть неточности в формировании задачи прошу извинить - на дополнительные вопросы с удовольствием отвечу.


 
Click   (2006-11-15 15:37) [1]

Удалено модератором
Примечание: Создание пустых сообщений


 
KilkennyCat ©   (2006-11-15 15:45) [2]

объекты надо определять?


 
Click   (2006-11-15 15:49) [3]


> KilkennyCat ©   (15.11.06 15:45) [2]


ну вобщем да...
а лучше координаты объектов и затем по этим координатам расставлять "кнопки"


 
Jeer ©   (2006-11-15 16:20) [4]

не нужно кнопки - определяй зону объекта и над этим местом меняй форму курсора и обрабатывай OnClick


 
click   (2006-11-15 17:12) [5]

Jeer ©
можно и так - ты прав!
а вот зону объекта как определить?  что дальше делать кнопки ставить или курсор менять - не проблема...


 
Jeer ©   (2006-11-15 17:16) [6]

А как хочешь - я же не знаю, что за плоский объект у тебя - квадрат, овал, полилиния.

Сопоставляй каждому объекту некоторый массив координат или полилинию, примерно описывающие контуры объекта.


 
boriskb ©   (2006-11-15 17:18) [7]

click   (15.11.06 17:12) [5]
а вот зону объекта как определить?

Click   (15.11.06 14:29)
Все вместе назовем это "картой".


Ее кто рисует?
Что ты про нее знаешь, когда программа твоя работает? Цвет, размер, цвет фона, ориентация. Координаты, наконец.
Совершенно произвольная карта и случайным образом сформированная?
Тогда "распознование образов"
Неслабая задача.


 
click   (2006-11-16 14:33) [8]


> boriskb ©   (15.11.06 17:18) [7]


> Ее кто рисует?

Не я, но отредактировать могу...

> Что ты про нее знаешь, когда программа твоя работает? Цвет,
>  размер, цвет фона, ориентация. Координаты, наконец.

Цвет, размер объектов знаю, их координаты заранее не знаю...

> Совершенно произвольная карта и случайным образом сформированная?

Ну в общем наверно можно сказать и так...
___________________________
Идея мне одна пришла...
Только вот перед загрузкой карты в программу ее необходимо будет "подготовить", а именно в тех местах где нарисованны объекты ставить точку на картинке цветом который до этого на карте не встречался... (ну например если карта черно-белая и объекты обозначены на ней также в черно-белом виде то рядом с объетом ставить например красную точку - это подготовка карты). Затем открываем карту в программе и попиксельно ищем красные точки если найдено - ставим в эти координаты контрол... Незнаю может подход не правильный - но пока это единственное что приходит в голову...
Так вот. Если никто лучшего варианта не предложит и прийдется отталкиваться от этого, то возникает следующий вопрос:
дело в том что каждый объект обладает своими свойствами которые при "клике" по объекту прийдется демонстрировать пользователю ....
так вот как определить по какому объекту кликнули - пока не придумал...


 
Skier ©   (2006-11-16 14:37) [9]


> так вот как определить по какому объекту кликнули - пока
> не придумал...

Tag ?


 
Jeer ©   (2006-11-16 14:39) [10]

Кто мешает сделать ручную векторизацую объектов ?
Это лучше, чем точки ставить.

Тебе ж сказано - определение попадания координат курсора в координаты того или иного объекта, т.е. перебор.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.052 c
2-1163229279
#0FFFF
2006-11-11 10:14
2006.12.03
Иконка компонента


2-1163601511
term1t
2006-11-15 17:38
2006.12.03
FastReport


2-1163795260
Ded222
2006-11-17 23:27
2006.12.03
как удалить файл ?


2-1163389925
NigthSkif
2006-11-13 06:52
2006.12.03
Запрос


6-1152600171
dwar
2006-07-11 10:42
2006.12.03
IndI ,IdHttp Connection reset by peer





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский