Шаг 211.
Библиотека Qt.
Графическая траектория

    На этом шаге рассмотрим построение графической траектории.

    Графическая траектория может состоять из различных геометрических объектов: прямоугольников, эллипсов и других фигур различной сложности. Ее основное преимущество заключается в том, что, единожды создав траекторию, ее можно отображать сколько угодно раз, одним лишь вызовом метода QPainter::drawPath(). Пример на рис. 1 иллюстрирует траекторию, созданную из трех геометрических объектов: прямоугольника, эллипса и кривой Безье.


Рис.1. Пример графической траектории

QPainterPath path;
QPointF pt1(width(), height() / 2);
QPointF pt2(width() / 2, -height());
QPointF pt3(width() / 2, 2 * height());
QPointF pt4(0, height() / 2);
path.moveTo(pt1);
path.cubicTo(pt2, pt3, pt4);
QRect rect(width()/2, height()/2, width()/4, height()/4);
path.addRect(rect);
QRect rect2(width()/4, height()/4, width()/4, height()/4);
path.addRect(rect2);
QRect rect1(width()/2-100, height()/2-100, width()/4+100, height()/4+100);
path.addEllipse(rect1);

QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::blue, 6));
painter.drawPath(path);

    Файлы приложения можно взять здесь.

    На следующем шаге рассмотрим использование отсечения.




Предыдущий шаг Содержание Следующий шаг