2022-11-10 17:07:39 +01:00
|
|
|
#pragma once
|
|
|
|
|
2022-11-14 11:37:38 +01:00
|
|
|
#include <opencv2/opencv.hpp>
|
|
|
|
|
|
|
|
using namespace cv;
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
2022-11-10 16:45:34 +01:00
|
|
|
class LFRPoint
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
/* data */
|
|
|
|
public:
|
|
|
|
double x, y;
|
|
|
|
LFRPoint(/* args */);
|
|
|
|
LFRPoint(double x, double y);
|
|
|
|
~LFRPoint();
|
|
|
|
|
|
|
|
LFRPoint operator-(const LFRPoint& pt){return LFRPoint(x-pt.x, y-pt.y);}
|
|
|
|
LFRPoint operator+(const LFRPoint& pt){return LFRPoint(x+pt.x, y+pt.y);}
|
|
|
|
};
|
|
|
|
|
|
|
|
class LFRVector : public LFRPoint
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
/* data */
|
|
|
|
public:
|
|
|
|
LFRVector(/* args */);
|
|
|
|
LFRVector(double x, double y);
|
|
|
|
LFRVector(const LFRPoint& pt);
|
|
|
|
~LFRVector();
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
class LFRLine
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
/* data */
|
|
|
|
|
|
|
|
public:
|
|
|
|
LFRPoint start;
|
|
|
|
LFRVector dir;
|
|
|
|
|
|
|
|
LFRLine(/* args */);
|
|
|
|
LFRLine(LFRPoint start, LFRVector dir);
|
|
|
|
LFRLine(LFRPoint start, LFRPoint end);
|
|
|
|
~LFRLine();
|
2022-11-14 11:37:38 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
class VectorOfLines{
|
|
|
|
private:
|
|
|
|
float theta;
|
|
|
|
float m;
|
|
|
|
float zeroPoint;
|
|
|
|
public:
|
|
|
|
VectorOfLines();
|
|
|
|
~VectorOfLines();
|
|
|
|
float calcTheta(cv::Point x, Point y);
|
|
|
|
float calcM(float theta);
|
|
|
|
float calcZeroPoint(cv::Point x, float m);
|
|
|
|
|
2022-11-10 16:45:34 +01:00
|
|
|
};
|