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