Вверх ↑
Этот топик читают: Гость
Ответов: 3
Рейтинг: 0
#1: 2015-10-28 08:13:17 ЛС | профиль | цитата
Здравствуйте! Подскажите реализацию следующей задачи: имеется карта города в виде рисунков в различном разрешении. Необходимо в программе разместить на карте различные объекты в виде небольших рисунков, с возможностью редактирования (поставить, убрать, заменить на другой). Идея следующая: загружаем картинку, стрелками перемещается к нужному месту, жнем клавишу, в текстовый файл пишем координаты и номер объекта. А дальше пока непонятно: с помощью PaintBox обрисовываем нашу карту (но так как изображение большое, то отобразить мы можем только небольшой кусочек), нужно подготовить рисунок с исходным разрешением с добавленными объектами. А также как можно выполнить редактирование объектов? Прошу помочь с идеей как проще выполнить задуманное.
code_36450.txt
карма: 1

0
файлы: 1code_36450.txt [5.2KB] [369]
Ответов: 2265
Рейтинг: 676
#2: 2015-10-28 11:19:00 ЛС | профиль | цитата
Если правильно понял задуманное, то вам нужно сохранять в отдельный файл данные с вашими объектами.
Как вариант запись строкой в формате: "название объекта,Х,Y,Width,Height". Возможно еще и ID уникальный номер для каждого объекта. Также возможно и название (номер) карты (если файлов карты несколько) на которой этот объект установлен. После загрузки файла карты перебираете весь список и проверяете есть объект на этой карте и влазит (используя X,Y,ширину и высоту) объект в отображаемый участок карты, если да то рисуем.
карма: 11

0
Гость
Ответов: 17029
Рейтинг: 0
#3: 2015-10-28 12:12:31 правка | ЛС | профиль | цитата


Редактировалось 5 раз(а), последний 2021-05-21 06:12:28
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#4: 2015-10-28 14:54:31 ЛС | профиль | цитата
code_36452.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_36452.txt [298B] [317]
Ответов: 2265
Рейтинг: 676
#5: 2015-10-28 16:02:06 ЛС | профиль | цитата
Dmitry_FI, смотрите схему:
code_36453.txt
Поясню некоторые моменты:

1. Сделать чтоб не заходило за границы - добавить If_else(вкладка Логика).
2. Можно сделать масштабирование: элемент Img_UseScale (вкладка ГрафикаТрансформация).

карма: 11

0
файлы: 1code_36453.txt [6.7KB] [583]
Ответов: 3
Рейтинг: 0
#6: 2015-10-28 17:27:45 ЛС | профиль | цитата
К сожалению у меня в версии Хиасма нет элементов Img_TextInRect и Img_UseOffset, а также не могу найти Img_UseScale, но вроде смысл понятен, буду дальше пробовать. Спасибо.
карма: 1

0
Ответов: 1535
Рейтинг: 176
#7: 2015-10-28 17:51:55 ЛС | профиль | цитата
Dmitry_FI, тут всё есть.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 2265
Рейтинг: 676
#8: 2015-10-28 18:18:59 ЛС | профиль | цитата
Dmitry_FI писал(а):
нет элементов Img_TextInRect и Img_UseOffset, а также не могу найти Img_UseScale
Элемент Img_TextInRect в схеме для наглядности. Все эти элементы уже достаточно давно внесены в HiAsm. Вам будет проще и удобнее поставить HiAsm по ссылки из поста выше.
карма: 11

0
Ответов: 3
Рейтинг: 0
#9: 2015-10-28 19:42:29 ЛС | профиль | цитата
А я и не знал что на Bitmap можно рисовать! Всем Спасибо.
карма: 1

0
9
Сообщение
...
Прикрепленные файлы
(файлы не залиты)