#pragma once #include "stdafx.h" class CLine { public: enum{ // левая точка y выше правой LINE_DIR_DOWN, // левая точка y ниже правой LINE_DIR_UP, // левая и правая y совпадают LINE_DIR_HORIZONTAL, // левая и правая x совпадают LINE_DIR_VERTICAL }; // точки сделаны открытыми т.к. изменений в классе не предвидится, // а данные используются очень много в расчетах POINT A, B; CLine(void); ~CLine(void); CLine (int ax, int ay, int bx, int by); CLine (const CLine& line); float GetLen (); double GetAngleRadians (); double GetAndleDegrees (); void SetLine (int ax, int ay, int bx, int by); float GetY (float x); float GetY (int x); int GetMinX (); int GetMaxX (); int GetMinY (); int GetMaxY (); int GetYProjection (); int GetXProjection (); BYTE GetDirection (); bool IsEndPoint (int x, int y); static BOOL IsLinesCross (const __int64 x11, const __int64 y11, const __int64 x12, const __int64 y12, const __int64 x21, const __int64 y21, const __int64 x22, const __int64 y22, int* IntersectX = 0, int* IntersectY = 0); BOOL IsLinesCross (const CLine line, POINT* intersect_point = 0); CLine& operator = (CLine& right); private: float k, b; float angle; };