Приложение для вычисления 2D кривых. Разработать небольшую программу на C ++, которая будет реализовывать поддержку иерархии 2D-кривых.
- Поддержка двух типов двухмерных геометрических кривых - линий и эллипсов. Каждая кривая должна иметь возможность возвращать 2D-точку и первую производную (2D-вектор) для каждого параметра t вдоль кривой.
- Заполнить контейнер (например, вектор или список) объектов этих типов, созданных со случайными или фиксированными параметрами.
- Вывести координаты точек и производные всех кривых в контейнере при t = PI / 4.
- Реализация должна использовать виртуальные методы.
- Не должна иметь явного освобождения памяти или утечек памяти.
Все кривые задаются параметрически, т.е. точка рассчитывается по некоторой формуле C (t).
- Линия определяется своей начальной точкой O и направлением D: C (t) = O + D * t.
- Эллипс определяется двумя его радиусами по осям X и Y.
Создан абстрактный класс Curve с чистыми виртуальными функциями getCoordinates и get2DCoordinatesDerivative, которые после реализации в классах-наследниках Line и Ellipse возвращают координату точки и 2D-вектор производной функции в этой точке соответсвенно при выбранном значении параметра t. Уравнения кривых заданы параметрически, координаты вектора производной определены аналитически как производные соответствующих координат по t.