Написать две программы на QT
1 Задача
Даны 3 точки на плоскости в формате
x1 y1 x2 y2 x3 y3
Требуется найти координаты следующих точек
1. точка пересечения медиан
2. точка пересечения биссектрис (центр вписанной окружности)
3. точка пересечения биссектрисы угла A и внешних углов B и C (центр вневписанной окружности)
4. точка пересечения высот
5. точка пересечения серединных перпендикуляров к сторонам (центр описанной окружности)
5. точка Жергонна - точка пересечения отрезков, соединяющих вершины треугольника с точками касания вписанной окружности
6. точка Нагеля - точка пересечения отрезков, соединяющих вершины треугольника с точками касания трех вневписанных окружностей
Пусть программа продемонстрирует, что в каждом случае три отрезка пересекаются в одной точке.
Используйте классы R2Point, R2Vector из предыдущего задания. Могут быть полезны следующие соображения:
*для двух точек A и B середину отрезка AB можно определить как ( A+B )/2 (посмотрите, как опеределен operator + для R2Point)
*для двух векторов найти вектор, направленный вдоль биссектриссы между ними можно, взяв сумму нормализованных векторов
*найти пересечение отрезков и прямых можно с помощью функций intersectLineSegments, intersectLineSegmentAndLine, intersectStraightLines (функции эти реализованы в R2Graph.cpp - если компилируете из командной строки, сделайте makefile)
2 Задача
В приложенном архиве - пример приложения на Qt. В дополнение к тому, о чем говорили на занятии:
вызываем setSizePolicy(Expanding, Expanding), чтобы виджет захватывал максимальную область в layout
вызываем painter.setRenderHint(painter.Antialiasing) для того, чтобы линии получались гладкие
точки сохраняем в QList
дописана логика обработки mouse events: левой кнопкой мышки можно добавлять или таскать точки, клик правой кнопкой удаляет точки.
Модифицируйте программу так, чтобы она не позволяла задавать более 3 точек и рисовала треугольник и центр пересечения медиан треугольника.
По нажатию на кнопку в верхней панели - очищаем список точек и рисунок (reset).
Если будет нужно, то ссылку на урок отправлю