Цифровые ковры
Такие картинки получаются если использовать битовые операции для определения цвета пикселя.
Эти изображения получены примерно так:
Целочисленные координаты пикселей отцентрованы и взяты по модулю:
w и h - кол-во пикселей по ширине и высоте.
Посчитаны угол и расстояние от центра:
Индекс цвета вычислен по формуле которая содержит битовые операции, например:
операнды могут иметь коэффициенты, операции могут быть другие, кажется тут большое поле для дальнейших экспериментов..
Такие картинки получаются если использовать битовые операции для определения цвета пикселя.
Эти изображения получены примерно так:
Целочисленные координаты пикселей отцентрованы и взяты по модулю:
x = abs(x - w / 2)
y = abs(y - h / 2)
w и h - кол-во пикселей по ширине и высоте.
Посчитаны угол и расстояние от центра:
a = atan2(y, x)
l = hypot(x, y)
Индекс цвета вычислен по формуле которая содержит битовые операции, например:
c = (a - l) | x | y
операнды могут иметь коэффициенты, операции могут быть другие, кажется тут большое поле для дальнейших экспериментов..
10❤23🔥18❤🔥3👍2✍1👀1
Продолжаю старый скетч, тут реймаршинг на CPU, яркость пикселя влияет на толщину линии, которая начинается в этом пикселе, чем ярче - тем тоньше. В целом можно было бы на вход брать картинку, но так было бы менее интересно.
3❤21👍3🔥1
Опять нареймаршил. 😅
Добавил к коду из предыдущего поста проверку коллизий, яркость в точке теперь влияет на плотность линий, а не на их толщину.
Для этого, после отрисовки одной линии все её точки складываются в квадро-дерево, а в процессе подсчета следующей линии - каждая вновь добавляемая точка проверяется не близко ли она к любой другой уже существующей точке, если близко то линия обрывается.
Последняя картинка это ошибка, я даже не знаю что там в итоге произошло, я применил 2 поворота, и забыл между ними поставить точку с запятой, как-то так:
Добавил к коду из предыдущего поста проверку коллизий, яркость в точке теперь влияет на плотность линий, а не на их толщину.
Для этого, после отрисовки одной линии все её точки складываются в квадро-дерево, а в процессе подсчета следующей линии - каждая вновь добавляемая точка проверяется не близко ли она к любой другой уже существующей точке, если близко то линия обрывается.
Последняя картинка это ошибка, я даже не знаю что там в итоге произошло, я применил 2 поворота, и забыл между ними поставить точку с запятой, как-то так:
[x,z] = rot(x,z,-1)
[y,z] = rot(y,z,.2)
4🔥26👍6❤5
#genuary1
One color, one shape.
One color, one shape.
❤15🔥11👍3🌭2