Алгоритъм диамант-квадрат

 Алгоритъм диамант-квадрат – метод за генериране на височинни карти за компютърна графика. Той малко по-добър от триизмерното изпълнение на алгоритъма на изместване на средната, който произвежда двуизмерни пейзажи. Той също така е известен като случайна точка на преместване на фрактал, в облака фрактал или плазма фрактал, заради плазма ефектът, който се получава, когато се прилага.

Плазмен фрактал
Анимиран плазмен фрактал

Идеята първо е била въведена от Ален Фуниър, Дон Фусъл и Лорен Карпентър на Специална група по интереси за компютърна графика и интерактивни техники 1982.

Алгоритъмът диамант-квадрат започва с 2D решетка и произволно генерира височина на терена от четири стойности, разположени в мрежа от точки, така че цялата равнина да е покрита с квадратчета.

ОписаниеРедактиране

э започва с 2D квадратен масив ширина и височина 2N + 1. В четирите ъглови точки на масива, е необходимо първо да се установи начални стойности.

Тогава диамантените и квадратните стъпки се извършват последователно, докато всички стойности на масива се инсталират.

Диамантена стъпка: за всеки квадрат в масива, да се даде стойност на средата на този квадрат да бъде средно аритметичното от четирите ъглови точки плюс произволна стойност.

Квадратна стъпка: за всеки диамант в масива, да се даде стойност на средната точка на диаманта да бъде средно аритметичното от четирите ъглови точки плюс произволна стойност.

На всяко повторение стойността на случайната величина трябва да бъде намалена.

По време на квадратните стъпки, точките, разположени по краищата на масива ще има само три съседни стойности, а не четири. Има няколко начина да се справим с това усложнения – най-лесното е да се взема средната стойност от трите съседни стойности. Друг вариант е да се 'обгърне' масива, взимайки четвъртата стойност от другата страна на масива. Този метод също позволява генерираните фрактали да са зашити заедно, без разкъсвания.

ВизуализацияРедактиране

На фигурите по-долу са показани етапите на алгоритъма диамант-квадрат на 5 × 5 таблица.

 

    Тази страница частично или изцяло представлява превод на страницата „Diamond-square algorithm“ в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​