Обсуждение статьи "Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 1): Зачем терминалу собственный 2D-рендерер"
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Опубликована статья Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 1): Зачем терминалу собственный 2D-рендерер:
Современным торговым интерфейсам нужно больше, чем просто сетка прямоугольников: карточки со скругленными углами, кольца и кольцевые диаграммы, полупрозрачные слои, плавные градиенты и произвольные многоугольники — все это стандартные элементы пользовательского интерфейса. Возможностей нативных графических объектов языка MQL5 и даже стандартного класса CCanvas недостаточно: углы остаются прямыми, границы заливок не сглаживаются, цвета фона объектов не поддерживают альфа-прозрачность, геометрия поддерживает только целые значения, а рост числа объектов может быстро снизить отзывчивость интерфейса. При этом мы хотим обойтись средствами самого терминала — без DLL и внешних инструментов — и вывести результат в виде одного графического объекта.
В этой серии мы пойдем другим путем. Вместо того чтобы придумывать новую архитектуру, мы заимствуем компактную, проверенную на практике архитектуру Cairo. Основная идея этой архитектуры — разделить геометрию (пути) и источники цвета, затем применить к источнику попиксельную маску покрытия и выполнить композицию с целевой поверхностью. Такой подход дает общую основу для качественного, масштабируемого рендеринга разных фигур. В следующих частях мы реализуем эту модель полностью на языке MQL5, продвигаясь небольшими шагами и проверяя результат каждого из них.
В первой части закладывается основа рендеринга: единое представление цвета в формате ARGB и пиксельная поверхность с возможностью повторного использования, привязанная к одному объекту OBJ_BITMAP_LABEL. В последующих частях будет меняться способ выбора и окрашивания пикселей, а механизм их вывода на график останется прежним.
Автор: Sandro Begashvili