Есть ли какой-то трюк для создания градиента с несколькими остановками в 2D-пространстве? То, что я хотел бы сделать, это создать прямоугольник на моем холсте, а затем иметь разные цветные точки в каждом углу.
Я попытался создать 4 градиента, по одному в каждом углу, которые указывают на противоположный угол. (пробовал линейный и круговой). но это не дает желаемого эффекта, потому что центр всегда не в цвете по кругу.
Эффект, который я хочу, будет похож на два линейных горизонтальных градиента, расположенных друг над другом. а затем третий вертикальный линейный градиент, который не влияет на цвета первых двух градиентов, а просто затухает нижний градиент до верхнего градиента по мере его снижения. так что два верхних угла — это первый линейный градиент, а два нижних угла — второй линейный градиент.
Я пробовал играть с globalCompositeOperation, но самое близкое, что мне удалось достичь, это трехсторонний градиент. не 4.
Единственный способ, который я могу придумать для этого, — это построение моего прямоугольника по одной строке за раз. с каждой линией, имеющей линейный градиент, который пересчитывается и слегка изменяется, так что это второй градиент к тому времени, когда рисуется нижняя линия. но это не похоже на самый эффективный (или самый простой для программирования) способ сделать это.
Изображения
Наверное, я слишком новичок здесь, чтобы давать ссылки на фотографии. Но вот ссылка на 3 изображения на моих фотографиях Google.
изображение 1: первый градиент (настройка двух верхних угловых цветов)
изображение 2: второй градиент (установка двух нижних угловых цветов)
изображение 3: оба изображения 1 и 2 смешаны друг с другом по вертикали, так что два верхних цвета плавно переходят в два нижних цвета.