Git Product home page Git Product logo

curves_evaluation_application's Introduction

Curves_evaluation_application

Задача

Приложение для вычисления 2D кривых. Разработать небольшую программу на C ++, которая будет реализовывать поддержку иерархии 2D-кривых.

  1. Поддержка двух типов двухмерных геометрических кривых - линий и эллипсов. Каждая кривая должна иметь возможность возвращать 2D-точку и первую производную (2D-вектор) для каждого параметра t вдоль кривой.
  2. Заполнить контейнер (например, вектор или список) объектов этих типов, созданных со случайными или фиксированными параметрами.
  3. Вывести координаты точек и производные всех кривых в контейнере при t = PI / 4.

Требования к реализации:

  1. Реализация должна использовать виртуальные методы.
  2. Не должна иметь явного освобождения памяти или утечек памяти.

Определения кривых:

Все кривые задаются параметрически, т.е. точка рассчитывается по некоторой формуле C (t).

  • Линия определяется своей начальной точкой O и направлением D: C (t) = O + D * t.
  • Эллипс определяется двумя его радиусами по осям X и Y.

Решение

Создан абстрактный класс Curve с чистыми виртуальными функциями getCoordinates и get2DCoordinatesDerivative, которые после реализации в классах-наследниках Line и Ellipse возвращают координату точки и 2D-вектор производной функции в этой точке соответсвенно при выбранном значении параметра t. Уравнения кривых заданы параметрически, координаты вектора производной определены аналитически как производные соответствующих координат по t.

curves_evaluation_application's People

Contributors

userandrew avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.