Найти в Дзене
В Дзене применяются
рекомендательные технологии
Old Programmer

Компьютерная графика. Рисование в QT (объект QPainter). Графики функций на C++

Доброго всем здоровья, это мой канал Old Programmer о программировании и программистах. Здесь: Тематическое оглавление моего Zen-канала (Old Programmer). Вот здесь все мои материалы о QT. Ну, а тут материалы по языкам C/C++. Обзор материалов по компьютерной графике здесь.

  • Список разделов канала Old Programmer, канала о программировании и программистах
programmer's notes

Графические возможности QT

Сегодня наконец то рассмотрим графику в программах на языке C++. Ну и в первую очередь будем испытывать возможности библиотеки Qt. Очень важный вопрос - это построение графиков функций. Сегодня приведу не сложный со всеми возможными упрощениями пример. Построение графика функции cos(x).

Когда мы собираемся строить график в окне программы, то следует обратить внимание на два момента:

  1. Оси координат в окне программы имеют своим центром левый верхний угол. При этом, если ось OX идет как и положено слева направо, то ось OY направлена вниз. Соответственно нужно перенести начало координат в середину окна и произвести зеркальное отражение по оси OX.
  2. Формулу для построения графика функции нужно также (кроме пункта 1) преобразовать так, чтобы она была наглядна в масштабах представленного окна. Если строить график по точкам, то для того, чтобы получить сплошной график, точек должно быть достаточно много.

В graph4000.cpp представлен пример программы построения графика функции y=cos(x). На рисунке 1 показан окно с графиком функции. Мы максимально упростили программу, опустив разметку осей координат. Читатель может самостоятельно развить программу в этом ключе. Впрочем к графикам функций мы будем возвращаться еще многократно, как к очень важной теме по программированию компьютерной графики.

И еще один важный момент. Окно должно перерисовываться в случае разворачивания и изменения размеров. Это достигается переопределением метода paintEvent(), который автоматически вызывается при необходимости перерисовки содержимого окна. Весь фрагмент рисования графика помещен мною именно туда. Основным классом для рисования является QPainter.

В качестве средства рисования графика функции мы использовали такой элемент как точка. Однако очень короткие отрезки прямой линии тоже могли бы подойти для этой цели. Попробуйте это сделать.

  • Программирование на языке Python. Графическая библиотека pillow

Компьютерная графика очень интересная и очень захватывающая область. Подписывайтесь на мой канал Old Programmer и не забывайте ставить 'like'.

Рисунок 1. График функции f=cos(x)
Рисунок 1. График функции f=cos(x)
programmer's notes

Рекомендуем почитать
Документы, вакансии и контакты