#ifndef RENDERAREA_H #define RENDERAREA_H #include class RenderArea : public QWidget { Q_OBJECT public: explicit RenderArea(QWidget *parent = nullptr); QSize minimumSizeHint() const Q_DECL_OVERRIDE; QSize sizeHint() const Q_DECL_OVERRIDE; enum ShapesType{ Astroid, Cycloid, HuygensCycloid, HypoCycloid, Line }; void setBackgroundColor(QColor color) { mBackgroundColour = color; } QColor backgroundColor() const { return mBackgroundColour; } void setShape(ShapesType shape) { mShape = shape; OnShapeChanged(); } ShapesType shape() const { return mShape; } void setInternalLenght(double l); void setScale(double s); void setStepCount(double s); signals: protected: void paintEvent(QPaintEvent* event) Q_DECL_OVERRIDE; public slots: private: void OnShapeChanged(); QPointF ComputeAstroid(double t); QPointF ComputeCycloid(double t); QPointF ComputeHuygens(double t); QPointF ComputeHypo(double t); QPointF ComputeLine(double t); QPointF Compute(double t); QColor mBackgroundColour,mShapeColour; ShapesType mShape; double mScale,mIntervalLenght; int mStepCount; }; #endif // RENDERAREA_H