Отрисовка окружности

This commit is contained in:
2025-12-24 20:36:54 +03:00
parent fe403236eb
commit 95f99575e2
4 changed files with 136 additions and 111 deletions

View File

@@ -173,6 +173,8 @@ public:
/// A base class for all curve-based objects (line, circle/arc, ellipse/arc).
class Curve
{
protected:
int tag;
public:
virtual ~Curve()
{}
@@ -212,12 +214,13 @@ public:
// DeepSOIC: I haven't found a way to simply copy a curve object provided pointer to a curve
// object.
virtual Curve* Copy() = 0;
void set_tag(int);
int get_tag();
};
class Line: public Curve
{
private:
int tag;
public:
Line()
{}
@@ -238,7 +241,6 @@ public:
Line* Copy() override;
void set_tag(int);
int get_tag();
bool contains(QPointF, qreal tol) const;
};
@@ -253,12 +255,14 @@ public:
~Circle() override
{}
Point center;
Point* center_ref;
double* rad;
DeriVector2 CalculateNormal(const Point& p, const double* derivparam = nullptr) const override;
DeriVector2 Value(double u, double du, const double* derivparam = nullptr) const override;
int PushOwnParams(VEC_pD& pvec) override;
void ReconstructOnNewPvec(VEC_pD& pvec, int& cnt) override;
Circle* Copy() override;
void set_tag(int);
};
class Arc: public Circle