125 Кб, mp4,
678x848, 0:02
☁️ 609407 В конец треда | Веб
☁️
image.png256 Кб, 436x583
2 609412
☁️ 3 610958
Очередной кошмарный брейнрот момент: захотелось себе свой expected. Чужие реализации существуют, но я не хочу. На самом деле, всё просто, но я изначально всё слишком сильно переусложнил дополнительными ненужными кастами, и думал, как сделать интерфейс поудобнее, но не придумал. Плюс это примерно второй раз в жизни, когда я пишу обобщённый код со всеми этими &&, type_traits, requires и прочим.

Deducing this ещё нескоро, поэтому просто вручную передаю правильную ссылку на this в отдельные функции-реализации из & и && методов. И про переусложнения: у меня изначально зачем-то вместо просто std::invoke_result была стрёмная конструкция из decltype/declval, где я через forward_like делал для Value или Error такую же value категорию, как у экспектеда. Что-то вроде:

decltype(fn(declval<forward_like<ExpectedForward, ArgumentType>>()))

Предположительно, чтобы выбралась (или не выбралась, тоже вариант) правильная функция с правильными аргументами. Но это вроде совершенно не нужно тут.

unique_ptr просто, чтобы проверить, что там нигде ничего не копируется без необходимости, а только мувается.

void в качестве Value вроде тоже работает.

https://gist.github.com/poppyfanboy/eea054476aa1263b62027e82ffb0a1e1

Не знаю, не уверен всё же, что оно без дыр работает, я слишком тупой. И забыл, зачем оно мне изначально было нужно, что мне теперь делать с этим уродцем..
 136 Кб, 728x960
4 611026
e
e e
5 612185
>>11026
Ты нахуйа собакину cock запихал?
☁️ 6 622363
Украденная идея про то, чтобы сделать в HSV переход цвета через smoothstep вместо линейной функции, чтобы не было этих лесенок, как на втором градиенте. Чтобы наборот из RGB в этот плавный HSV конвертировать, нужна функция обратная smoothstep, она вроде аналитически выводится: https://iquilezles.org/articles/ismoothstep.
☁️ 7 622576
https://en.wikipedia.org/wiki/Digital_differential_analyzer_(graphics_algorithm)#Program — фиолетовая линия.

https://en.wikipedia.org/wiki/Bresenham's_line_algorithm#Algorithm — красная линия. Ужасная статья, кстати, сложно понять, что к чему, ну, так со всеми статьями на википедии. Зачастую просто вывалена куча информации как будто без попытки донести её до читателя.

Вроде полностью всегда не совпадают, но довольно близки.

Второе — прикольный алгоритм, позволяет рисовать линию исключительно через арифметику с интами. Основная идея в том, что ты пошагово идёшь вдоль прямой и выбираешь например, в этом частном случае между следующими пикселями (x + 1, y) и (x + 1, y + 1) на основе того, какой из них находится ближе (имеется в виду вертикальное расстояние, не евклидово) к прямой. За координаты пикселей берутся координаты их центров.

То, какой пиксель ближе, можно определить через знак D(x, y) := f(x + 1, y + 1/2) (геометрически — по какую сторону от прямой лежит точка, находящаяся посередине между (x + 1, y) и (x + 1, y + 1)). И тут прикол в том, что можно для точки, из которой начинается прямая, вычислить начальный D(xfrom, yfrom), а дальше в зависимости от знака D пошагово вычислять следующий Dnew через предыдущий Dold.

Ну и вместо D можно спокойно взять 2D, тогда начальный 2Dinitial = 2A + B — это инт, и все последующие 2D будут интами. И алгоритм от частного случая для первого квадранта и (x0, y0) < (x1, y1) расширяется до общего случая.

Градиент на фоне уродский, ленты одинаковых цветов эти прямо видно, наверное, из-за того, что пиксели слишком крупные, а я думал, прикольно будет выглядеть, не знаю, может быть, я математику где-то заруинил ещё.
☁️ 8 622833
gaeming
Обновить тред
« /dr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее