| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Выделить нужный квадрат. |
| Автор: assFalt 2.6.2012, 20:40 | ||
| Добрый день. Суть программы такая: есть торговая площадь. Загружается карта этажа, на ней отмечается где площадь свободна, где занята, где лишние куски, где проходы и т.д. Не могу реализовать следующее: Ввожу в один из Edit площадь (Н: 50 кв.м), надо чтобы на карте все "свободные" места, в которые эта площадь влезает как-то выделились (например приобрели другой цвет или рамочку вокруг). Пример: Мне нужно поселить арендатора, которому нужна площадь 100 кв. м. Каждый квадрат на карте означает 75 кв.м., то есть, надо чтобы как-то выделились 2 квадрата с желтым цветом (причем эти квадраты должны стоять рядом друг с другом). Пыталась сделать что-то такое:
Эта процедура не работает и она плохая, ведь квадратов, которые надо выделить, может быть и 1, и 2, и 22. ![]() P.S. Вот такой зубастый курсач. |
| Автор: DarkProg 3.6.2012, 00:10 |
| времечно позднее и меня если честно вырубает, так что искать у себя вменяемый код не буду... попробую указать направление куда двигаться. Главное направление - это графы. А если точнее, то это обходы графов в ширину, если я ничё не путаю. А вообще, если я правильно понял суть, то нужно для начала сформировать объекты необходимой площади(всевозможные варианты) и потом наложить эти варианты на все свободные места. Или можно пойти от обратного - выделить всю свободную площадь и с какого-то одного края(с того с которого религия не запрещает) её начать заполнять по принципу как помещается(это кажется "задача на раскраску" называется) или скажем по принципу улитки(мне щас кажется что так будет наиболее эффективно). P.S. И ещё совет, в коде где много переменных типа Form1, button1 и прочее непонятное никто разбираться не будет - это слишком долго и сложно. |