Текущее время: Сб 30 ноя 2024 14:41

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 339 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 12  След.
Автор Сообщение
 Сообщение Сб 26 янв 2008 13:15
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Шаман писал(а):
Чё, конкурент, да? :mad:
Нет, ты мне не конкурент!! :twisted: :evil: :mrgreen:
Шаман писал(а):
Такой вопр: а для чего второй лист на твоей проге? :hm:
Аа... Ну это я недоделал повпихал. Предназначено для создания изображения карты высот.
Шаман писал(а):
З.Ы.: 2 Krogoth: на чём писал?
Как обычно, на Дельфе.
Просто интересно, возможен ли такой вариант записи данных, или есть что лучше. :roll:
А вот насчет формирования геологических конструкций, можно, наверное, так: строить цепи рандомно тонкой/толстой кривой линией, обладающей минимальной длиной, а затем производить гауссово размытие.


 Сообщение Сб 26 янв 2008 15:33
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Krogoth писал(а):
А вот насчет формирования геологических конструкций...
Не изобретай самокат - я уже велосипед сделал! :twisted: Видел мой А.Г.Р. v.3.1? :roll:

Гы! Проверил: первый макрос Ехселевскго Васика ("Rounder") работаеть. Отображение карты в виде разноцветных пикселов: сработало! :supercool: Вот демо версия А.Г.Р., строящего 1 тестовую гору посреди карты и отображающего полученную карту (600х600) в виде картинки:
А.Г.Р.-демо версия (12 kb) (это уже ЕХЕ-шник! :twisted: )
Народ, гляньте, крякните, что думаете. :yes:
[Инструкция: чтобы заставить прогу построить гору, тыкните кнопку "Начать составление карты". Чтобы увидеть результат, тыкните кнопку "Показать карту". И увидите чу-у-удо! :twisted: ]
Так что не злитесь (ну, а вдруг? :roll: ), Ваши советы не были бесполезными - есть результат. :yes:

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Сб 26 янв 2008 15:42
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Не запатентовано - значит, можно тырить.))
А вообще, мне интересно чисто из интереса (!) :mrgreen:
Сделал создание картинки высот, а насчет генератор рельефа идей мало. 1 горой не разбалуешься.


 Сообщение Сб 26 янв 2008 15:46
Профиль  
Механоид 2 поколения
Аватара пользователя
Сообщения: 223
Откуда: Издалека
Зарегистрирован: Ср 28 ноя 2007 22:32
Ну что ж, посмотрим, что ты там нахимичил :smile:

_________________
____^_^
___/_@_@\
___\_>?<./


 Сообщение Сб 26 янв 2008 15:48
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
А у меня вот не запускается! Вот! Так что буду свое химичить. :mrgreen:


 Сообщение Сб 26 янв 2008 16:20
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
У меня не запускается, требует CC260MT.dll.

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Сб 26 янв 2008 16:21
Профиль  
Механоид 2 поколения
Аватара пользователя
Сообщения: 223
Откуда: Издалека
Зарегистрирован: Ср 28 ноя 2007 22:32
И у меня тоже

_________________
____^_^
___/_@_@\
___\_>?<./


 Сообщение Сб 26 янв 2008 16:47
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Эй, люди, стойте, не уходите! :ooo: Я всё поправил. :oops: Вот:
А.Г.Р. (демо) (173 kb)
Ну, а щас как?
[Инструкция: чтобы заставить прогу построить гору, тыкните кнопку "Начать составление карты". Чтобы увидеть результат, тыкните кнопку "Показать карту". И увидите чу-у-удо! :twisted: Надеюсь... :oops: ]

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Сб 26 янв 2008 17:09
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Чот оно не перерисовывает гору... Или я делаю что-то не так...
Хотя, вроде по инструкцию: нажал, подождал, посмотрел.


 Сообщение Сб 26 янв 2008 17:21
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
2 Шаман
А настройки работают? А то что-то я разници так и не заметил, сколько их не менял.
А вообще картина не впечатляет. Подумаешь, красное круглое пятно, совсем не интересно.


 Сообщение Сб 26 янв 2008 17:32
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
Короче, нафиг твою прогу, Не запускается, по той же причине.

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Сб 26 янв 2008 19:04
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Вот склепал экспериментальный генератор случайного рельефа. Формирует горные массивы различные по форме и высоте. Картинка выглядит резко и все это несколько не похоже на горы, потому что еще не применял гауссово размытие. Оно, по идее, должно исправить те резкости и неточности, которые допускает алгоритм, и картинка станет более похожей на горную местность.
Чтоб по глазам не било пока так: белый - низко, черный - высоко. Повторное нажатие кнопки "генерирование" создает еще несколько массивов.
З.Ы. Зацените плз, а то не знаю, зря делал или нет.


 Сообщение Сб 26 янв 2008 19:17
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Krogoth писал(а):
Чот оно не перерисовывает гору...
Вообще-то перерисовыает, но точно такую же, поэтому незаметно. :tongue:
Razum писал(а):
А настройки работают?
Только одна: "острота пика". Это единственное значение, необходимое для работы того макроса, который я переписал (пока что только "Rounder") из Ехселевского Васика. Всё остальное - пока муляжно. Так, на будущее. :wink:
Razum писал(а):
А вообще картина не впечатляет. Подумаешь, красное круглое пятно, совсем не интересно.
Вот такой критики я и ждал, к сожалению. :oops: Дело в том, что цвета пикселов вычисляются в зависимости от высоты точки ("height") следующим образом:
color = RGB(height, 255 - height, 0)
В общем виде, цвет = RGB(красный, зелёный, синий), где 3-мя значениями определяются интенсивности соответствующих цветовых составляющих (от 0 (чёрный) до 255 (макс. интенсивность)). Так что по моей формуле для точек, значения которых лежат в интервале от 0 до 255 цвет "красный" для точек высотой 255 и "зелёный" - для 0. Правда, я ожидал, что посередине будет жёлтый цвет, но оказалось, что "посередине" к тому же ещё сильно уменьшается общая интенсивность цвета, поэтому и такой неприглядный эффект. Пока не знаю, как изменить формулу. Видимо, общая интенсивность цвета определяется НЕ как сумма интенсивностей составляющих цветов, а, наверное, максимальной интенсивностью одного из составляющих. :hm:
Будо думать. :roll:
Если есть предложения, скажите. :yes: Как видите, пока что мне не удалось сделать плавный цветовой переход от зелёного к красному. :sad:
smt005 писал(а):
Короче, нафиг твою прогу, Не запускается, по той же причине.
Не знаю, в чём дело у тя, но, судя по всему, у Razum'а во второй раз проблем не возникло... :roll:

Добавлено спустя 3 минуты 59 секунд:

Krogoth писал(а):
Зацените плз, а то не знаю, зря делал или нет.
Э-э-э, может, ты этого не видел:А.Г.Р. v.3.1 (646 kb)

Добавлено спустя 5 минут 14 секунд:

Krogoth писал(а):
З.Ы. Зацените плз, а то не знаю, зря делал или нет.
У-у-у... Конкурент, определённо конкурент. :wink: Если такими темпами и дальше будешь работать... :shock: Мдя, надо мне поторопиццо... :roll:

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Сб 26 янв 2008 20:11
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Шаман писал(а):
Э-э-э, может, ты этого не видел
Видел-видел. :mrgreen: Просто мне ж и самому интересно! Давно хотел склепать подобную штуковину.
Вот если разобраться в OpenGL, можно будет даже смоделировать поверхность, а если взять большой размер (10000x10000), то и целую планету. :twisted:
Правда я губу раскатал, в Open'е ни грамму не шарю. :smile:


 Сообщение Сб 26 янв 2008 21:00
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
Шаман писал(а):
Не знаю, в чём дело у тя, но, судя по всему, у Razum'а во второй раз проблем не возникло...

Ага. нареканий к работе нет. Кроме, разумеется, скучной работы. Все нормально работало, не падало. Тока один раз ошибка деления на ноль была, когда я в настройках все по нулям поставил.
2 Krogoth
Прикольно у тя получилось. Сам алгоритм придумал или свистнул где-нето?

Добавлено спустя 17 минут 46 секунд:

Предлагаю такой алгоритм распределения цвета, который позволяет задать 1024 градации. Пусть высота у нас равна Н.

Для значений высоты 0 - 255: (255, Н, 0),
Для значений 256 - 511: (511 - Н, 255, 0),
Для значений 512 - 767: (0, 255, Н),
Для значений 768 - 1023: (0, 1023 - Н, 255).

Добавлено спустя 1 минуту 5 секунд:

Таким образом, наинизшая точка соответствует полному красному цвету, наивысшая - синему.


 Сообщение Сб 26 янв 2008 21:15
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Придумал сам. А вот гауссово размытие буду свистить. :mrgreen:
Его алгоритм просмотрел = 5 килобайт. :shock:


 Сообщение Сб 26 янв 2008 21:21
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
2 Krogoth
Твой алгоритм использует псевдослучайные числа, или целиком на аналитических функциях? Очень, имхо, неплохо получилось.


 Сообщение Сб 26 янв 2008 21:44
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Рандомным образом я выбираю стартовую точку, а затем около нее аналогичным образом строю вторую. Каждая последующая строится при условии, что расстояние от нее до стартовой больше, чем у предыдущей. Высота определяется относительно высоты предыдущей точки с рандомным отклонением, не превышающим определенное значение (зависит от параметра т.н. "гладкости" горы). А изменение направления отклонения по высоте (вниз/вверх) происходит при определенных условиях, напр., протяженность относительно ровного участка для плавного перевода в противоположное направление.
Вот. Хотя, где-то в коде закрался какой-то глюк (работает не совсем так, как ожидал). Но устранять не буду - эффект явно положительный! :mrgreen:


 Сообщение Сб 26 янв 2008 21:49
Профиль  
Добродушный дворф
Сообщения: 1154
Откуда: Москва, юго-восточный сектор
Зарегистрирован: Вт 26 сен 2006 19:04
Шаман писал(а):
А.Г.Р. v.3.1

Кульная вещь, красиво рисует. :supercool:

_________________
Кто сказал - борьба напрасна, зло сильней добра?
Кто сказал - спасайся, вот нора?
Путь тяжел, но цель прекрасна, как огонь костра.
Человек, настал твой час, пора!


 Сообщение Сб 26 янв 2008 22:43
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Блин, скока не парился, так и не смог изобрести способ нормального плавного перехода от красного к зелёному. :evil: :oops: Так что поступил проще: сделал простой переход от чёрного к белому. :tongue: Вот эта новая версия демо-проги:
А.Г.Р. (демо) (212kb)
Инструкция: чтобы заставить прогу построить гору, тыкните кнопку "Начать составление карты". Чтобы увидеть результат, тыкните кнопку "Показать карту". Сделана возможность регулировки дискретности цветового перехода, а также выбора, какой цвет соответствует минимальной высоте, а какой максимальной ("инверсия цвета"). Изменения не будут отображены, пока не будет снова нажата кнопка "показать карту".
Ну как, сойдёт такой способ отображения карты? :roll:
З.Ы.: как лучше выглядит:
1) чем выше, тем темнее,
2) чем выше, тем светлее?

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Сб 26 янв 2008 23:26
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
CGen версии 2
Ссылка здесь.
Добавил возможность гауссового размытия создаваемого рельефа, регулирование начальной высоты и сохранение в файл.
Попробовал использовать сгенерированную карту высот для экспорта в меховский редактор с помощью программы, написанной Разумом.
Начальная картинка вот.
Что получилось - вот.


 Сообщение Вс 27 янв 2008 2:23
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
2 Шаман
А мой алгоритм не пробовал? Он в принципе должен давать максимальную насыщенность.
2 Krogoth
Колись, где алгоритм размытия надыбал?


 Сообщение Вс 27 янв 2008 13:38
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Razum писал(а):
А мой алгоритм не пробовал?
ИМХО, ты не учёл, что максимум насышенности - 255. И наблюдается "пилообразная" периодичность: 0 = мин., 255 = макс.; 256 = снова мин.
А принцип, где "красная" оставляющая максимальна для максимальной высоты, а "зелёная" масимальна для нуля, и средние значения вычисляются пропорционально, не проходит - тебе (да и мне) результат этого как раз и не понравился. :tongue: З.Ы.: для простоты, я сделал высоту варьирующуюся от 0 до 255, так что до 1024 - это ты перебрал. :no: З.З.Ы.: "RGB color" = "Red/Green/Blue color". :scientist:

Ну сё, пора мне уже взяццо за полное переписывание кода из Васика, а то всё ленюсь да резину тяну... :roll: Дайте мне ободрительного пинка, а?.. :oops:

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Вс 27 янв 2008 14:40
Профиль  
Трёхмерный
Аватара пользователя
Сообщения: 3622
Зарегистрирован: Пн 17 янв 2005 19:23
Цитата:
Дайте мне ободрительного пинка, а?
Делай чёрнобелый рельеф, в меховский редактор можно будет вставить.

_________________
https://sites.google.com/site/intelligencecells
http://www.youtube.com/user/IntelligenceCells


 Сообщение Вс 27 янв 2008 17:30
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
2 Шаман
Ну ты не пробовал видимо. Насыщенность там на максимуме постоянно, Хотя цвета не очень понятно отражают высоту, это да. Вот вам, например, градиент, позырьте.
http://devouringone.narod.ru/pictures/grad.jpg


 Сообщение Вс 27 янв 2008 20:34
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Razum писал(а):
Ну ты не пробовал видимо.
Не, не пробовал... :oops:
Razum писал(а):
Насыщенность там на максимуме постоянно
Точно? :hm:
Razum писал(а):
Хотя цвета не очень понятно отражают высоту
Это не важно. Цвета должны отображать разность высот. Это главное.
Razum писал(а):
http://devouringone.narod.ru/pictures/grad.jpg
Что, с твоим алгоритмом так получиццо? А, тогда щас попробую. :yes:
З.Ы.: осталось всего 1 макрос Васиковский переписать. :twisted:

Добавлено спустя 2 часа 40 минут 49 секунд:

Razum писал(а):
Предлагаю такой алгоритм распределения цвета, который позволяет задать 1024 градации. Пусть высота у нас равна Н.

Для значений высоты 0 - 255: (255, Н, 0),
Для значений 256 - 511: (511 - Н, 255, 0),
Для значений 512 - 767: (0, 255, Н),
Для значений 768 - 1023: (0, 1023 - Н, 255).
Вот соответствующий код, если кому интересно:
-------------------------------------------------------------------------------------

for(l=0; l<100; l++){
for(h=0; h<1024; h++){
if(-1<h && h<256) r = 255;
if(255<h && h<512) r = 511 - h;
if(511<h && h<1024) r = 0;

if(-1<h && h<256) g = h;
if(255<h && h<768) g = 255;
if(767<h && h<1024) g = 1023 - h;

if(-1<h && h<512) b = 0;
if(511<h && h<768) b = h;
if(767<h && h<1024>Pixels[h][l] = RGB(r, g, b);
};
};

-------------------------------------------------------------------------------------
Razum писал(а):
А мой алгоритм не пробовал?
Сущь, точно - рабатить!!! :twisted: :yes: Вот доказательство:
1024grad
Это для 1024-х значений h. Тута все цвета радуги. Но мне нуна шоб цвет изменялся тока от красного до зелёного, так что я решил юзнуть тока половину, т.е. 512 значений h. Причём, как я уже говорил, минимуму высоты должен соответствовать зелёный, а максимуму - красный. Так что я ещё впридачу инверснул этот обрезок полоски. В итоге я получил то, что Вы можете увидеть тут (верхняя полоска):
512grag
Но если присмотреться, то можно увидеть, что жёлтая полоска намного уже, чем красная или зелёная. Мне это показалось "нечестным", так что я долго ломал голову над тем, как уравнять все три цвета в правах. Парадоксально, но пришёл к выводу, что для этого нужно изменить простую линейную зависимость на "корень из". Вот какой код в итоге получился:
-------------------------------------------------------------------------------------

for(l=0; l<100; l++){
for(h=0; h<512; h++){
if(h<256) r = sqrt(h*255); else r = 255;
if(h<256>Pixels[h][l] = RGB(r, g, 0);
};
};

-------------------------------------------------------------------------------------
Сравните две полоски вышевыложенного рисунка: верхняя - простая линейная зависимость, нижняя полоска - мой изменённый код. ИМХО, мне удалось добиться равноправия зелёного, жёлтого и красного. Как Вы считаете, "Да" или я дальтоник? :roll:
Так что будо переделывать моё черно белое отображение карты на разноцветное. :yes: Э, завтра. :twisted:

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Вс 27 янв 2008 21:00
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Цитата:
Колись, где алгоритм размытия надыбал?
Вот. Готовый модуль. Достаточно лишь подключить к основному.


 Сообщение Вс 27 янв 2008 22:56
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
2 KrogothСпасибо, изучу. Правда, там код под дельфи, а я на Си пишу.
2 Шаман
Думаю, никого в правах или в чем либо уравнивать не надо, и испоьзовать стоит обычную линейную зависимость. Хотя смотрится в принципе, и так и сяк нормально.


 Сообщение Пн 28 янв 2008 14:11
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Перековертил весь код А.Г.Р.-а из Васика в С++. Щас осталось тока последний невнятный баг исправить. Не знаю как, так что у Вас спрошу.
Вот есть у мну две матрицы:

char dmap[600][600];
char dmapcur[600][600];

Как видите, они одинакового размера и формата. Мне нужно заменить всё содержимое матрицы "dmap" на содержимое матрицы "dmapcur". Другими словами, сделать матрицу "dmap" равной матрице "dmapcur". Я написал просто:

dmap = dmapcur;

Но этот финт не прошёл - компиллятор пишет ошибку. Скажите, хто знаеть, как правильно приравнять одну матрицу к другой? :hm:
З.Ы.: и ещё второй, менее важный вопрос: как очистить всю матрицу начисто?

Добавлено спустя 36 минут 48 секунд:

З.Ы.: поступила инфа, что сцылко с моим Ехселевским А.Г.Р.-ом стала битая. Не проверял, перезалил свеженько на всякий пожарный:
А.Г.Р. v.3.1. (628 kb)

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 28 янв 2008 17:38
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
Шаман писал(а):
dmap = dmapcur;

Ну дак правильно, матрицы целиком не копируются, и компилятор фишку сечет. Извольте поэлементно. Кстати, а что за ошибку-то пишет?


Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 339 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 12  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB