
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Горизонтальный градиент на канвасе.
Немного улучшил код, а также ввёл переменную, которая отвечает за скорость визуализации:
Изменение скорости визуализации сделано благодаря обновлению канваса не после каждого рисования линии, а через промежутки.
Размер промежутка вычисляется при помощи арифметической операции "Остаток от деления":
Я тут накладывал разные цвета: на фоновый цвет полностью непрозрачный (альфа канал 255) накладывал цвет с прозрачностью (альфа канал равен 128). Возник вопрос - по каким формулам считается итоговый цвет пикселя для режимов COLOR_FORMAT_ARGB_RAW и COLOR_FORMAT_ARGB_NORMALIZE.
Если ориентироваться на статью Расчёт результирующего цвета, то расчёты не совпадают.
Где неправильно: цветовые константы хранят неправильные данные или функция PrintFormat неправильно работает?
Вот скрипт, который выводит через PrintFormat цвета в целочисленном виде:
Результат вывода:
Почему clrRedпредставлен как 0x000000FF, а не как 0x00FF0000? Ведь красный цвет это C'255,0,0'.
Почему clrBlue представлен как 0x00FF0000, а не как 0x000000FF? Ведь синий цвет это C'0,0,255'.
Все правильно. Просто у ARGB по сравнению с Color другой формат хранения данных.
Формат записи один должен быть: сначала альфа канал (если он есть) затем RGB. Согласно справке тип Color запись синего цвета через литералы:
C'0x00,0x00,0xFF' // синий
т.е. в целочисленном представлении синий цвет (без альфа-канал) должен записываться так: 0x0000FF. Но тестовый скрипт выводит синий цвет задом наперёд:
Получается, что в цветовых константах цвет записан задом наперед.
Получается, что в цветовых константах цвет записан задом наперед.
При COLOR_FORMAT_ARGB_RAW метод TransparentLevelSet с параметром "0" (полная прозрачность) делает прозрачность близкую к полной прозрачности, но явно не полную прозрачность.
При COLOR_FORMAT_ARGB_RAW метод TransparentLevelSet с параметром "0" (полная прозрачность) делает прозрачность близкую к полной прозрачности, но явно не полную прозрачность.
Уточнение: остаточная прозрачность при уровне прозрачности "0" наблюдается только на x32. На x64 остаточной прозрачности нет:
Такое поведение канваса в режиме COLOR_FORMAT_ARGB_RAW - ошибка или особенность рисования в системах x32 и x64?
Уточнение: остаточная прозрачность при уровне прозрачности "0" наблюдается только на x32. На x64 остаточной прозрачности нет:
Такое поведение канваса в режиме COLOR_FORMAT_ARGB_RAW - ошибка или особенность рисования в системах x32 и x64?