Это команда ppmforge, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
ppmforge - фрактальные подделки облаков, планет и звездного неба
СИНТАКСИС
ppmforge [-облака] [-ночь] [-размерности размер] [-час час] [-наклон | -клон угол]
[-сетка размер] [-мощность фактор] [-ледники уровень] [-лед уровень] [-насыщенность Сб]
[-семена семя] [то звезда доля] [-xsize | -width ширина] [-ysize | -height высота]
ОПИСАНИЕ
ppmforge генерирует три типа `` случайных фрактальных подделок '', термин, введенный Ричардом
Ф. Восс из исследовательского центра IBM Thomas J. Watson Research Center за кажущиеся реалистичными изображения
естественные объекты, генерируемые простыми алгоритмами, воплощающими в себе случайность и фрактальную самооценку.
сходство. Методы, используемые ppmforge по существу те, что даны Voss [1],
в частности, техника спектрального синтеза, более подробно объясненная Дитмаром.
Саупе [2].
Программа генерирует два вида изображений: планеты и облака, которые просто
различные визуализации данных, генерируемые одинаковым образом, что демонстрирует единство
фрактальная структура этих очень разных объектов. Третий вид картин - звездное
sky, синтезируется непосредственно из псевдослучайных чисел.
Генерация планет или облаков начинается с подготовки массива случайных данных.
в частотной области. Размер этого массива, `` размер сетки '', может быть установлен с помощью
-сетка вариант; чем больше сетка, тем реалистичнее изображения, но время расчета
и потребность в памяти увеличивается пропорционально квадрату размера ячейки. Фрактальная размерность,
который вы можете указать с помощью -размерности опция, определяет неровность местности
на планете или масштаб деталей в облаках. Поскольку фрактальная размерность
увеличивается, в случайную сетку добавляется больше высокочастотных компонентов.
После создания сетки обратное двумерное преобразование Фурье выполняется по
Это. Это преобразует исходные случайные данные частотной области в пространственные амплитуды. Мы
масштабируйте реальные компоненты, полученные в результате преобразования Фурье, в числа от 0 до 1
связанный с каждой точкой на сетке. Вы можете дополнительно изменить это число, применив
`` шкала степенного закона '' с -мощность вариант. Масштаб единства оставляет цифры
немодифицированный; шкала степени 0.5 берет квадратный корень из чисел в сетке, в то время как
По шкале степени 3 числа в сетке заменяются их кубиками. Масштабирование по степенному закону
лучше всего можно представить, думая о данных как о высотах местности; полномочия
менее 1 - ландшафты с отвесными уступами, похожие на ледниковые долины;
силы больше единицы делают шпили волшебных замков (которые требуют больших размеров ячеек и высоких
разрешение для достижения наилучших результатов).
После этих вычислений у нас есть массив указанного размера, содержащий числа, которые
диапазон от 0 до 1. Растровые изображения генерируются следующим образом:
Облака Создается цветовая карта, которая варьируется от чистого синего до белого за счет увеличения
примесь (обесцвечивание) синего с белым. Цифры меньше 0.5 окрашены
синего цвета, числа от 0.5 до 1.0 окрашены в соответствующие уровни
белый, 1.0 - чисто-белый.
Планета Сетка проецируется на сферу. Значения менее 0.5 считаются водой.
и значения от 0.5 до 1.0 для земли. Акватории окрашены в соответствии с
глубину воды и сушу в зависимости от ее высоты. Данные случайной глубины
используется для создания облаков над океанами. Атмосфера примерно как
Земля смоделирована; его светопоглощение рассчитано для создания синего оттенка
вокруг края планеты. Функция, которая возрастает от 0 до 1 в зависимости от
широта модулируется местным возвышением для образования полярных ледяных шапок - высокая
высотная местность переносит ледники дальше от полюса. Исходя из позиции
звезды относительно наблюдателя, видимый цвет каждого пикселя
планета рассчитывается путем трассировки лучей от звезды к планете и
наблюдатель и применяя модель освещения, которая суммирует окружающий свет и рассеивает
отражение (для большинства планет окружающий свет равен нулю, так как их главная звезда
единственный источник освещения). Дополнительные случайные данные используются для генерации звезд.
по всей планете.
Ночь Последовательность псевдослучайных чисел используется для генерации звезд с помощью пользователя.
указанная плотность.
Изображения облаков всегда содержат 256 или меньше цветов и могут отображаться в большинстве цветов.
сопоставленные устройства без дальнейшей обработки. Фотографии планет часто содержат десятки
тысячи цветов, которые необходимо сжать ppmквант or ppmдизер перед кодированием
в формате с отображением цветов. Если разрешение дисплея достаточно высокое, ppmдизер в общем
производит более красивые планеты. ppmквант имеет тенденцию создавать дискретные цветные полосы,
особенно в океанах, которые нереальны и отвлекают. Количество цветов
в изображениях звездного неба, созданных с помощью -ночь опция зависит от значения, указанного для
-насыщенность. Маленькие значения ограничивают распределение цветовой температуры звезд и
уменьшить количество цветов в изображении. Если -насыщенность установлен на 0, ни один из
звезды будут раскрашены, и получившееся изображение никогда не будет содержать более 256 цветов.
Снимки ночного неба с множеством звезд разных цветов часто выглядят лучше всего при сжатии цветов.
by пнмглубина , а не ppmквант or ppmдизер, Пытаться ньюмаксвал настройки 63, 31 или 15
пнмглубина для уменьшения количества цветов в изображении до 256 или меньше.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
-облака Создавайте облака. Создается растровое изображение фрактальных облаков. Выбор облаков
устанавливает значение по умолчанию для фрактальной размерности на 2.15 и масштабный коэффициент мощности на 0.75.
-размерности размер
Устанавливает фрактальную размерность на указанную размер, который может быть любым плавающим
значение от 0 до 3. Чем выше фрактальная размерность, тем больше хаотичность.
изображения, которые требуют более высокого разрешения и большего размера сетки БПФ для
хорошо выглядишь. Если размер не указан, при создании планет используется 2.4.
и 2.15 для облаков.
-ледники уровень
С плавающей точкой уровень настройка контролирует степень, в которой высота местности
вызывает появление льда на более низких широтах. Значение по умолчанию 0.75 делает
полярные шапки простираются к экватору через возвышенность и образуют ледники в
самые высокие горы, как на Земле. Более высокие значения создают ледяные щиты, покрывающие
все больше и больше поверхности земли, имитируя планеты посреди льда
возраст. Более низкие значения, как правило, скучны, что приводит к нереалистичным геометрически-
точные границы ледяной шапки.
-час час
При создании планеты час используется как `` часовой угол в центральном
меридиан ''. Если вы укажете -час 12, например, планета будет полностью
светится, что соответствует полудню на долготе в центре
экран. Вы можете указать любое значение с плавающей запятой от 0 до 24 для час, Но
значения, которые помещают большую часть планеты в темноту (от 0 до 4 и от 20 до 24) результат
полумесяцами, которые хоть и красивы, но не дают много подсвеченных пикселей для
количество необходимых вычислений. Если нет -час указан вариант, случайный
выбран часовой угол, смещенный так, что только 25% сгенерированных изображений будут
полумесяцы.
-лед уровень
Устанавливает протяженность полярных ледяных шапок равной заданной плавающей точке уровень,
уровень по умолчанию 0.4 создает ледяные шапки, похожие на те, что на Земле. Меньше
значения уменьшают количество льда, в то время как большие -лед настройки создают больше
выступающие ледяные шапки. Достаточно большие значения, например 100 и более, в
в сочетании с небольшими настройками для -ледники (попробуйте 0.1) создайте `` ледяные шары ''
как Европа.
-наклон | -клон угол
Угол наклона планеты относительно ее главной звезды установлен равным
угол, который может быть любым значением с плавающей запятой от -90 до 90. Наклон
угол можно представить как указание в градусах `` сезона '', в который находится планета.
испытывающий в настоящее время или, точнее, широту, на которой звезда
проходит зенит в полдень по местному времени. Если 0, планета находится в точке равноденствия; звезда
прямо над головой на экваторе. Положительные значения представляют лето в
северное полушарие, отрицательные значения летом в южном полушарии. В
Например, угол наклона Земли в день июньского солнцестояния составляет около 23.5, а в день июньского солнцестояния - 0 °.
равноденствия в марте и сентябре и -23.5 во время декабрьского солнцестояния. Если нет
задан угол наклона, случайное значение от -21.6 до 21.6 градуса.
выбран.
-сетка размер
Сетка из размер by размер будет использоваться для быстрого преобразования Фурье (БПФ). Примечание
что требования к памяти и скорость вычислений увеличиваются как квадрат размер;
если вы увеличите размер сетки вдвое, программа будет использовать в четыре раза больше памяти и запустится
в четыре раза дольше. Размер сетки по умолчанию - 256x256, что дает достаточно хорошие результаты.
просматривая изображения, используя половину мегабайта для массива одиночных файлов размером 256x256
точные комплексные числа, необходимые для БПФ. На машинах с ограниченной памятью
емкости, возможно, вам придется уменьшить размер ячейки, чтобы избежать нехватки оперативной памяти.
Чем больше размер сетки, тем лучше выглядят изображения; различия
становится особенно заметным при генерации изображений высокого разрешения с
относительно высокие фрактальные размерности (от 2.2 до 3).
-ночь Создается звездное небо. Звезды создаются по тому же алгоритму, что и для
звезды, окружающие изображения планет, но результат состоит исключительно из
звезды.
-мощность фактор
Устанавливает `` коэффициент мощности '', используемый для масштабирования высот, синтезированных из БПФ, до
фактор, которое может быть любым числом с плавающей запятой больше нуля. Если нет фактора
указано значение по умолчанию 1.2, если планета создается, или 0.75, если
облака выбираются -облака вариант. Результат изображения БПФ
синтез - это массив значений высоты от 0 до 1. Неединичная степень
Фактор возводит в степень каждое из этих возвышений в указанную степень. Для
Например, коэффициент мощности 2 квадрата каждое значение, а коэффициент мощности 0.5
заменяет каждое квадратным корнем. (Обратите внимание, что возведение в степень от 0
и 1 дает значения, которые остаются в этом диапазоне.) Коэффициенты мощности менее 1
подчеркивать крупномасштабные изменения высоты за счет небольших изменений.
Коэффициенты мощности больше 1 увеличивают неровность местности и, например,
высокие фрактальные размерности, может потребоваться больший размер ячейки FFT и / или более высокий экран
разрешение, чтобы хорошо выглядеть.
-насыщенность Сб
Управляет степенью насыщенности цвета звезд, окружающих планету.
картинки и заполнить звездное небо, созданное с помощью -ночь вариант. По умолчанию
значение 125 создает звезды, которые напоминают небо, видимое человеческим глазом из
Поверхность Земли. Звезды тусклые; только самые яркие активируют колбочки в
сетчатка человека, вызывающая восприятие цвета. Более высокие значения Сб приблизительный
появление звезд с околоземной орбиты, где лучше темновая адаптация, отсутствие
свечения неба, и концентрация света от данной звезды на меньшей площади
сетчатки благодаря отсутствию атмосферной турбулентности усиливает
восприятие цвета. Значения выше 250 создают небеса `` научной фантастики ''.
это, хотя и красиво, не встречается в этой вселенной.
Благодаря закону обратных квадратов в сочетании с любовью Природы к посредственности,
на каждую яркую приходится много, много тусклых звезд. Это население
отношения точно отражены в небесах, созданных ppmforge. Тусклый, низкий
массивные звезды живут намного дольше ярких массивных звезд, следовательно, есть
много красноватых звезд на каждого синего гиганта. Эти отношения сохраняются
ppmforge. Вы можете перевернуть пропорцию, имитируя небо, как показано на
галактика со вспышкой звездообразования, указав отрицательный Сб значения.
-семена Num Устанавливает начальное число для генератора случайных чисел в целое число Num. Используемое семя
для создания каждое изображение отображается на стандартном выходе (если не подавлено с помощью
-тихо вариант). Изображения, созданные с использованием одного и того же начального числа, будут идентичны.
Если нет -семена указано, случайное начальное число, полученное из даты и времени, будет
выбрал. Указание явного начального числа позволяет повторно визуализировать изображение, которое вы
особенно нравится при более высоком разрешении или с другими параметрами просмотра.
то звезда доля
Задает процент пикселей в десятых долях процента, который будет отображаться как
звезды, окружающие планету или заполняющие всю рамку, если -ночь is
указано. По умолчанию доля это 100.
-xsize | -width ширина
Устанавливает ширину сгенерированного изображения равной ширина пикселей. Ширина по умолчанию - 256.
пикселей. Изображения должны быть как минимум такой же ширины, как и высоты; если ширина меньше чем
высота указана, она будет увеличена до равной высоте. Если вы должны
иметь длинную тонкую растровую карту, сделайте квадратную с ppmforgeзатем используйте пнмкат в
извлеките часть нужной формы и размера.
-ysize | -height высота
Устанавливает высоту сгенерированного изображения равной высота пикселей. Высота по умолчанию
256 пикселей. Если указанная высота превышает ширину, ширина будет
увеличился, чтобы равняться высоте.
Все флаги могут быть сокращены до их кратчайшего уникального префикса.
Используйте ppmforge онлайн с помощью сервисов onworks.net