Доброго всем здоровья, это мой канал Old Programmer о программировании и программистах. Здесь: Тематическое оглавление моего Zen-канала (Old Programmer). Вот здесь все мои материалы о QT. Ну, а тут материалы по языкам C/C++. Обзор материалов по компьютерной графике здесь.
- Список разделов канала Old Programmer, канала о программировании и программистах
Графические возможности QT
Сегодня наконец то рассмотрим графику в программах на языке C++. Ну и в первую очередь будем испытывать возможности библиотеки Qt. Очень важный вопрос - это построение графиков функций. Сегодня приведу не сложный со всеми возможными упрощениями пример. Построение графика функции cos(x).
Когда мы собираемся строить график в окне программы, то следует обратить внимание на два момента:
- Оси координат в окне программы имеют своим центром левый верхний угол. При этом, если ось OX идет как и положено слева направо, то ось OY направлена вниз. Соответственно нужно перенести начало координат в середину окна и произвести зеркальное отражение по оси OX.
- Формулу для построения графика функции нужно также (кроме пункта 1) преобразовать так, чтобы она была наглядна в масштабах представленного окна. Если строить график по точкам, то для того, чтобы получить сплошной график, точек должно быть достаточно много.
В graph4000.cpp представлен пример программы построения графика функции y=cos(x). На рисунке 1 показан окно с графиком функции. Мы максимально упростили программу, опустив разметку осей координат. Читатель может самостоятельно развить программу в этом ключе. Впрочем к графикам функций мы будем возвращаться еще многократно, как к очень важной теме по программированию компьютерной графики.
И еще один важный момент. Окно должно перерисовываться в случае разворачивания и изменения размеров. Это достигается переопределением метода paintEvent(), который автоматически вызывается при необходимости перерисовки содержимого окна. Весь фрагмент рисования графика помещен мною именно туда. Основным классом для рисования является QPainter.
В качестве средства рисования графика функции мы использовали такой элемент как точка. Однако очень короткие отрезки прямой линии тоже могли бы подойти для этой цели. Попробуйте это сделать.
- Программирование на языке Python. Графическая библиотека pillow
Компьютерная графика очень интересная и очень захватывающая область. Подписывайтесь на мой канал Old Programmer и не забывайте ставить 'like'.