Математическая генерация дна моря (глубины), Задача на мат.логику и/или программиование (не Стром-2.х) |
Здравствуйте, гость ( Вход | Регистрация )
Математическая генерация дна моря (глубины), Задача на мат.логику и/или программиование (не Стром-2.х) |
ALexusB |
Nov 13 2008, 14:32
Сообщение
#1
|
Разработчик ВМЛ-КВЛ Группа: Admin Сообщений: 16,345 Регистрация: 2-November 04 Пользователь №: 3 |
Народ, нужна помощь в одной интересной задаче для нужд игры про "кораблики" не на стром-2.х
Уперся в генерацию (роботом) дна (мелей) Дано: Есть матрица, например, 64х64 или 100х100, не важно, хоть 100х60 клеток. Значение клеток - это глубина в метрах. Для простоты считаем до 7 метров, далее для корабля не важно - "нет дна". То есть 1 2 3 4 5 6 7 видов значений. переходы глубин плавные, то есть 1-2 2-3 и тп, 1-7 или 1-3 быть не может. Рандомно задаются: - место мели в матрице - размер и форма мели - ширина полоски перехода на каждую глубину (то есть ширина 1-2, 2-3... можно одну на всех - это частный случай) - число мелей (они могут быть в нескольких местах или накладываться, тогда переходы будут 1-2-3-4-3-2-1 или 1-2-1, зависимо от расстояния) Требуется Алгоритм генерации мелей амебообразной формы (из значений 1) с плавным переходом в 7 Решение ??? Какие есть идеи? Понятно, что вариант наколбасить все ручками рабочий - редактор такой сделать не вопрос, он у мя уже почти готов. Но хочется, чтоб само делало, каждый раз разное |
N.tony |
Jun 6 2009, 13:41
Сообщение
#2
|
пират Группа: форумчанин Сообщений: 1,060 Регистрация: 9-July 08 Пользователь №: 17,197 |
Если я не сильно поздно, я бы тоже предложил
Если вам нужна модель дна, не пристыкованного к суше (т.е. без начально заданных краев с некоторых сторон), то можно использовать простейший способ а-ля "карта высот": В фотошопе есть специально обученный фильтр "облака". Создав новый файл нужного размера, просто применить черно-белый вариант облаков, а затем проскейлить цвет каждой точки (белый -> 1, черный -> 7). В результате получится, в общем-то, то что надо: Прикрепленные изображения |
Tymofei |
Jun 6 2009, 14:02
Сообщение
#3
|
Приватир Группа: форумчанин Сообщений: 3,759 Регистрация: 20-November 07 Из: Москва Пользователь №: 12,641 |
|
N.tony |
Jun 6 2009, 14:11
Сообщение
#4
|
пират Группа: форумчанин Сообщений: 1,060 Регистрация: 9-July 08 Пользователь №: 17,197 |
Мулька в том, чтобы визуально отображались математические значения. Если возвращать значения глубин по распознаванию цветов получится не айс - метод будет медленным, ИМХО. Если сохранять изображение как серый битмап, то в итоге там и будет матрица со значением 0-255 для каждой точки. Распознавать ничего, собственно, не надо: Код 7-H=(X-S)/Y Где H - итоговое значение глубины, X - значение, записанное в битмапе, S - шифт для сдвига всего изображения в более "глубокую" область, а Y - собственно, коэффициент. Он считается как-то типа (255-S)/7, ну а потом просто надо округлить правую часть и отрицательные значения делать нулем. Как-то так. |
Текстовая версия | Сейчас: 22nd June 2024 - 23:35 |