sergey_ovechkin, Еще одна мысля пришла в голову. Вот эту вашу зону с прозрачными пикселями нужно перевести в изображение и просто рисовать через drawImage, он прозрачность автоматически обрабатывает. А чтобы перевести из массива пикселей в изображение, можно временно создать канвас с размерами зоны вставить туда, далее получить изображение в бейс64 через canvas.toDataURL() и его уже можно вставлять в src image'а и рисовать через drawImage
sergey_ovechkin, Можете рисовать поверх другого, только ручками. Также копируем зону куда хотим вставить и начинаем перемножать пиксели. По сути можно написать свой вариант перекрытия. Мы привыкли что это уже кто-то за нас написал, мы вставляем и хоп магическим образом все работает. Ну если не хотите замарачиваться делайте так, наложите второй канвас поверх первого. И вырезаете область с первого, ну в любом случае вам нужно сделать прозрачными пиксели не входящие в вашу фигуру. Далее вставляете на второй канвас которым поверх первого и прозрачность будет работать так как вы думали.
sergey_ovechkin,
К примеру вы вырезали квадрат, по сути другую фигуру вы вырезать не можете. Но хотите вставить допустим треугольник вписанный в этот квадрат.
Поэтому определяем место куда хотим вставить, и вырезаем такой же по размерам квадрат, а далее просто проходим по нашему изначальному массиву и меняем пиксели на пиксели из второго массива, но только в местах где эти пиксели не входят в наш треугольник. Вставляем, и вуаля вставился только треугольник, хотя по сути вставился квадрат, просто мы скопировали пиксели с зоны выходящей за треугольник.
sergey_ovechkin, What? Вы рисуете на одном холсте, никаких зеленый пикселей под прозрачными нет, это один слой. putImageData, просто заменяет те пиксели куда вы вставляете на те что вы передаете.
Если вы хотите эффекта перекрытия, то просто рисуйте квадрат через fillRect, но перед этим выставьте globalAlpha например в 0.5
Владимир, Судя по всему создает пдф и кодирует его в бейс64 он на фронте, а потом уже отправляет на бек. И ява скрипт у него и на фронте и на беке, потому что бек у него нод.жс. Только непонятно одно, нахрена тут бейс64
hatealleverything, Во втором варианте вы можете просто передать toY другое и оно остановится когда дойдет, а в первом варианте поменять условие if(t < 1) на другое, например if(t < 0.5), тогда она дойдет до середины и остановится
hatealleverything, Конечно, не дать дальше выполниться setTimeout. По сути первый вариант, если убрать setTimeout это просто функция которая принимает значение t, t от 0 до 1, тоесть 0 это линию в нулевой точке, передаем 1 линия в самом конце, если передать 0.5 будет где-то в середине, ну и я t просто инкрементирую с малым шагом и через задержку рисую, получается типо анимация.
Второй вариант тоже самое, только там 3 параметра curY это текущее значение y , toY это куда стремится по сути наша анимация, step это тот же шаг с которым оно изменяет curY
Evgeii, А это нормально что в вашем варианте если придет код 400+ то у вас вызовется сразу и реджект и ресолв. Может там else или return хотя-бы поставить?
reinmaker90, Всеравно ничего не понял, ну мне кажется вы хотите сделать что-то типа такого
Только оно будет криво работать, потому-что вы каждый раз жестко вставляете хтмл код через innerHTML+= слетают все обработчики ну то ладно они заново добавляются ну также слетают значения checked.
Хотя такого результата можно еще проще добиться
Причем тут C++? В Js тоже можно работать с бд, сетями и др. Чтобы выработать инженерное решение нужно постоянно сталкиваться с разнотипными задачами и решать их, причем никуда не смотреть, а самому сесть придумать алгоритм и решить, а потом можешь глянуть как другие решили.
А переход с Js на C++ будет как удар молотом по голове.