Я читал это: http://www.gameprogrammer.com/fractal.html#diamond
И там написано:
Это отправная точка для процедуры итеративного подразделения,
который состоит из двух шагов:
Шаг ромба: Взяв квадрат из четырех точек, сгенерируйте случайное значение в средней точке квадрата, где встречаются две диагонали.
среднее значение рассчитывается путем усреднения четырех угловых значений плюс
случайное количество. Это дает вам алмазы, когда у вас есть несколько
квадраты, расположенные в сетке.
Шаг квадрата: Взяв каждый бриллиант из четырех точек, сгенерируйте случайное значение в центре бриллианта. Рассчитать среднюю точку
значение путем усреднения угловых значений, плюс случайное количество генерируется
в том же диапазоне, что и для алмазной ступени. Это дает вам квадраты
еще раз.
Я не понимаю этого. Как взятие средней точки каждого квадрата делает бриллиант? Как взятие средней точки каждого алмаза дает квадрат?
Может ли кто-нибудь предоставить независимый от языка код, как это сделать?
Edit:
Шаг 1: у вас есть сетка и выровняйте четыре угла по высоте:
* ┬ ┬ ┬ *
├ ┼ ┼ ┼ ┤
├ ┼ ┼ ┼ ┤
├ ┼ ┼ ┼ ┤
* ┴ ┴ ┴ *
Шаг 2: вы берете среднюю точку квадрата и устанавливаете ее как среднее значение для всех 4 углов плюс случайное значение:
* ┬ ┬ ┬ *
├ ┼ ┼ ┼ ┤
├ ┼ * ┼ ┤
├ ┼ ┼ ┼ ┤
* ┴ ┴ ┴ *
И что теперь? Я нигде не вижу бриллиант