2523 lines
84 KiB
C
2523 lines
84 KiB
C
|
// PDSMath.h
|
|||
|
|
|||
|
#if !defined(PDSMath_h)
|
|||
|
#define PDSMath_h
|
|||
|
|
|||
|
#include <math.h>
|
|||
|
#include <afxwin.h>
|
|||
|
#include <afxtempl.h>
|
|||
|
|
|||
|
#define CONST_PI 3.14159265359
|
|||
|
#define DBL_MIN 2.2250738585072014e-308
|
|||
|
#define DBL_MAX 1.7976931348623158e+308
|
|||
|
|
|||
|
#define RPG_PT_GNCP 0 //<2F>˵<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB>ߵ<EFBFBD>)
|
|||
|
#define RPG_PT_NGCP 1 //<2F><><EFBFBD><EFBFBD><EFBFBD>뻡<EFBFBD>ߵ<EFBFBD>
|
|||
|
#define RPG_PT_NGNCP 2 //ֱ<>ߵ<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB>ߵ<EFBFBD>)
|
|||
|
#define RPG_PT_GCP 3 //<2F><><EFBFBD>뻡<EFBFBD>ߵ<EFBFBD>
|
|||
|
#define RPG_PT_GP 64 //<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
#define RPG_PT_INSPT 100 //<2F><>ֵ<EFBFBD><D6B5>
|
|||
|
#define RPG_PT_SEAM 128 //<2F>ݷ<EFBFBD><DDB7><EFBFBD>
|
|||
|
#define RPG_PT_NODEF -1 //<2F><EFBFBD><DEB6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
#define CONST_MAXDISTANCE 0.05 //<2F><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵĵ<CFB5>,Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>λ:mm. <20><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>ϵͳ<CFB5>еķֱ<C4B7><D6B1><EFBFBD>Ϊ40,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сȡֵ0.05mm
|
|||
|
#define F_MAX_TANGENT_ERROR 0.1 //20131015 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>λ:mm
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵ĵ<CDB5>,<2C><><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ʹ<><CAB9><EFBFBD>߿ɸ<DFBF><C9B8><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
|||
|
class CTypePoint : public CObject
|
|||
|
{
|
|||
|
public:
|
|||
|
CPoint m_ptPoint;
|
|||
|
int m_iType;
|
|||
|
|
|||
|
CTypePoint();
|
|||
|
CTypePoint(CTypePoint &a);
|
|||
|
CTypePoint(CPoint ptPoint,int iType);
|
|||
|
~CTypePoint();
|
|||
|
void operator=(const CTypePoint &a);
|
|||
|
BOOL operator==(CTypePoint& a);
|
|||
|
BOOL operator!=(CTypePoint& a);
|
|||
|
};
|
|||
|
|
|||
|
class CTypePointListArray; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>͵ĵ<CDB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
class CTypePointList : public CList<CTypePoint,CTypePoint>
|
|||
|
{
|
|||
|
public: //<2F><>չ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
|||
|
public: //<2F><>չ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
|
|||
|
|
|||
|
CTypePointList& operator=(CTypePointList& rhs); //<2F><>ֵ
|
|||
|
BOOL operator==(CTypePointList& rhs); //<2F>Ⱥ<EFBFBD>
|
|||
|
BOOL operator!=(CTypePointList& rhs); //<2F><><EFBFBD>Ⱥ<EFBFBD>
|
|||
|
CTypePoint& operator[](int iIndex); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
|||
|
|
|||
|
//<2F><><EFBFBD>²<EFBFBD><C2B2>Ҷ<EFBFBD><D2B6>Ǵ<EFBFBD>Head->GetNext->Tail<69><6C><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//<2F><><EFBFBD>Ҹ<EFBFBD><D2B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
int FindIndexOfTypePoint(CTypePoint TypePoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD>Ҹ<EFBFBD><D2B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
POSITION FindPositionOfPoint(CPoint ptPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD>Ҹ<EFBFBD><D2B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
int FindIndexOfPoint(CPoint ptPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD>Ҹ<EFBFBD><D2B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
POSITION FindPositionOfType(int iType);
|
|||
|
|
|||
|
//<2F><><EFBFBD>Ҹ<EFBFBD><D2B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
int FindIndexOfType(int iType);
|
|||
|
|
|||
|
//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>this
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD>,this<69>ij<EFBFBD><C4B3>ȵ<EFBFBD><C8B5><EFBFBD>listPoint,ÿ<><C3BF><EFBFBD><EFBFBD>һһ<D2BB><D2BB>Ӧ,<2C><><EFBFBD><EFBFBD>this<69><73>ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>iType
|
|||
|
void SetTypePointList(int iType, CList<CPoint,CPoint>& listPoint);
|
|||
|
|
|||
|
//<2F><>this<69>еĵ<D0B5><C4B5><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>listPoint
|
|||
|
void ExtractPointList(CList<CPoint,CPoint>& listPoint);
|
|||
|
|
|||
|
//<2F><>listPoint<6E><74><EFBFBD>õ<EFBFBD>this<69><73>m_ptPoint<6E><74>
|
|||
|
void SetOnlyPointList(CList<CPoint,CPoint>& listPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD>this<69>ֶ<EFBFBD>
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// (1)Ӧ<>þ<EFBFBD><C3BE><EFBFBD>,<2C>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ڸ<EFBFBD><DAB8>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD>㽫<EFBFBD><E3BDAB><EFBFBD>Ƶ<EFBFBD><C6B5>ֶ<EFBFBD>,iTypeʵ<65><CAB5><EFBFBD>ϱ<EFBFBD>ʾbGrade
|
|||
|
// (2)alTypePoint[]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᱣ֤<E1B1A3><D6A4>һ<EFBFBD><D2BB>
|
|||
|
// (3)bClose=true,<2C><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>iType,<2C><><EFBFBD><EFBFBD>alTypePointֻ<74><D6BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>this
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// bClose =true <20>պ<EFBFBD>,ͷβ<CDB7>㲻<EFBFBD><E3B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>,=false <20><><EFBFBD><EFBFBD>
|
|||
|
// iType <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// alTypePoint <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>iType<70>ĵ<EFBFBD><C4B5><EFBFBD>Ҫ<EFBFBD><D2AA>Ϊ<EFBFBD>öν<C3B6><CEBD><EFBFBD>
|
|||
|
void DivideTypePointListEqualType(BOOL bClose, int iType, CTypePointListArray& alTypePoint);
|
|||
|
|
|||
|
//ֻҪ<D6BB><D2AA><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>ͽ<EFBFBD><CDBD>зֶ<D0B7>
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// (1)Ӧ<>þ<EFBFBD><C3BE><EFBFBD>,<2C>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ڸ<EFBFBD><DAB8>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD>ʵ<EFBFBD>ʵķֶ<C4B7>,m_iTypeʵ<65><CAB5><EFBFBD>ϱ<EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
// (2)<29><><EFBFBD><EFBFBD><EFBFBD>ֶι<D6B6><CEB9><EFBFBD>,ÿһ<C3BF>ε<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>м<EFBFBD><D0BC>ĵ<EFBFBD>û<EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><CEBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (3)alTypePoint[]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᱣ֤<E1B1A3><D6A4>һ<EFBFBD><D2BB>
|
|||
|
// (4)bClose=true,<2C><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m_iType<70><65>Ϊ0,<2C><><EFBFBD><EFBFBD>alTypePointֻ<74><D6BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>this
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// bClose =true <20>պ<EFBFBD>,ͷβ<CDB7>㲻<EFBFBD><E3B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>,=false <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// alTypePoint <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>bClose=true,<2C><>ôÿ<C3B4>ε<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD>m_iType<70><65><EFBFBD><EFBFBD>Ϊ0
|
|||
|
void DivideTypePointListWhenTypeNoZero(BOOL bClose, CTypePointListArray& alTypePoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>m_iType<70><65><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// (1)Ӧ<>þ<EFBFBD><C3BE><EFBFBD>,m_ptPoint<6E><74>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>,m_iType<70><65>ʾ<EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>(<28><><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD>),<2C><>ô,Sort֮<74><D6AE><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// bSmallToLarge =true <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>,=false <20>Ӵ<EFBFBD><D3B4><EFBFBD>С
|
|||
|
void SortByType(BOOL bSmallToLarge = TRUE);
|
|||
|
|
|||
|
void MakeReverse(); //<2F><>this<69><73><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
POSITION FindPositionOfSmallestType(void); //<2F><><EFBFBD><EFBFBD>m_iType<70><65>С<EFBFBD><D0A1><EFBFBD>Ǹ<EFBFBD>Ԫ<EFBFBD>ص<EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
int FindIndexOfSmallestType(void); // <20><><EFBFBD><EFBFBD>m_iType<70><65>С<EFBFBD><D0A1><EFBFBD>Ǹ<EFBFBD>Ԫ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
|||
|
POSITION FindPositionOfLargestType(void); //<2F><><EFBFBD><EFBFBD>m_iType<70><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD>Ԫ<EFBFBD>ص<EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
int FindIndexOfLargestType(void); // <20><><EFBFBD><EFBFBD>m_iType<70><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD>Ԫ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>߲<EFBFBD><DFB2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// dMaxError <20>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
// iInsertType <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>m_iTypeֵ
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>this<69><73>(<28><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>this<69><73>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>this<69><73><EFBFBD><EFBFBD>),=false <20><><EFBFBD><EFBFBD><EFBFBD>㲻<EFBFBD><E3B2BB>this<69><73>
|
|||
|
BOOL InsertPointAtPolyline(CPoint ptPoint, double dMaxError, int iInsertType = 0);
|
|||
|
|
|||
|
//<2F>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// dMaxError <20>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
// iInsertType <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>m_iTypeֵ
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>this<69><73>(<28><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>this<69><73>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>this<69><73><EFBFBD><EFBFBD>),=false <20><><EFBFBD><EFBFBD><EFBFBD>㲻<EFBFBD><E3B2BB>this<69><73>
|
|||
|
BOOL InsertPointAtPolygon(CPoint ptPoint, double dMaxError, int iInsertType = 0);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
CPoint FindNearestPoint(CPoint ptPoint);
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㲢<EFBFBD><E3B2A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
CPoint FindNearestPoint(CPoint ptPoint, int& nDistance);
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
BOOL FindNearestPoint(CPoint ptPoint, double dMaxError, CPoint& ptOutput);
|
|||
|
};
|
|||
|
|
|||
|
//<2F><><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
class CTypePointListArray : public CArray<CTypePointList,CTypePointList&>
|
|||
|
{
|
|||
|
public: //<2F><>չ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
|||
|
public: //<2F><>չ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
|
|||
|
|
|||
|
CTypePointListArray& operator=(CTypePointListArray& rhs); //<2F><>ֵ
|
|||
|
};
|
|||
|
|
|||
|
class CRPGrade_Point : public CObject {
|
|||
|
public:
|
|||
|
CPoint m_ptPoint;
|
|||
|
int m_nType;
|
|||
|
long n_SerNo;
|
|||
|
|
|||
|
public:
|
|||
|
|
|||
|
CRPGrade_Point();
|
|||
|
CRPGrade_Point(CRPGrade_Point &a);
|
|||
|
CRPGrade_Point(CPoint ptPoint,int nType,long nSerNo);
|
|||
|
CRPGrade_Point(CPoint ptPoint,int nType);
|
|||
|
~CRPGrade_Point();
|
|||
|
void operator=(CRPGrade_Point &a);
|
|||
|
};
|
|||
|
|
|||
|
class CRotateMove : public CObject {
|
|||
|
public:
|
|||
|
double m_dAngle; //<2F><>ת<EFBFBD>ĽǶ<C4BD>
|
|||
|
double m_dSin,m_dCos; //<2F><>ת<EFBFBD>ĽǶ<C4BD><C7B6><EFBFBD>,<2C><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>˱<EFBFBD><CBB1><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>˲<EFBFBD><CBB2>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
CPoint m_ptPointO; //<2F><>תԭ<D7AA><D4AD>
|
|||
|
CPoint m_ptOffset; //ƫ<><C6AB><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
public:
|
|||
|
CRotateMove();
|
|||
|
CRotateMove(CRotateMove& rhs);
|
|||
|
CRotateMove(double dAngle,CPoint ptPointO,CPoint ptOffset);
|
|||
|
~CRotateMove();
|
|||
|
void operator=(CRotateMove &a);
|
|||
|
|
|||
|
void Initial();
|
|||
|
};
|
|||
|
|
|||
|
class CRotateMoveList : public CList<CRotateMove,CRotateMove>
|
|||
|
{
|
|||
|
public: //<2F><>չ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
|||
|
public: //<2F><>չ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
|
|||
|
|
|||
|
CRotateMoveList& operator=(CRotateMoveList& rhs); //<2F><>ֵ
|
|||
|
CRotateMove& operator[](int iIndex); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
|||
|
};
|
|||
|
|
|||
|
class CDBLPoint : public CObject {
|
|||
|
public:
|
|||
|
double x,y;
|
|||
|
|
|||
|
public:
|
|||
|
CDBLPoint();
|
|||
|
CDBLPoint(double x1,double y1);
|
|||
|
CDBLPoint(CDBLPoint &a);
|
|||
|
~CDBLPoint();
|
|||
|
void operator=(CDBLPoint &a);
|
|||
|
BOOL operator==(CDBLPoint &a);
|
|||
|
|
|||
|
//ʹ<><CAB9>ptPoint<6E><74><EFBFBD><EFBFBD>this
|
|||
|
void SetPoint(CPoint ptPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>CPoint<6E><74>
|
|||
|
CPoint GetPoint(void);
|
|||
|
};
|
|||
|
|
|||
|
class CDBLPointList : public CList<CDBLPoint,CDBLPoint>
|
|||
|
{
|
|||
|
public: //<2F><>չ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
|||
|
public: //<2F><>չ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
|
|||
|
|
|||
|
CDBLPointList& operator=(CDBLPointList& rhs); //<2F><>ֵ
|
|||
|
CDBLPoint& operator[](int iIndex); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
|||
|
|
|||
|
//ʹ<><CAB9>listPoint<6E><74><EFBFBD><EFBFBD>this
|
|||
|
void SetPoint(CList<CPoint,CPoint>& listPoint);
|
|||
|
|
|||
|
//<2F><>this<69>еĵ<D0B5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>listPoint
|
|||
|
void GetPoint(CList<CPoint,CPoint>& listPoint);
|
|||
|
};
|
|||
|
|
|||
|
class CDBLPointListArray : public CArray<CDBLPointList,CDBLPointList&>
|
|||
|
{
|
|||
|
public: //<2F><>չ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
|||
|
public: //<2F><>չ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
|
|||
|
|
|||
|
CDBLPointListArray& operator=(CDBLPointListArray& rhs); //<2F><>ֵ
|
|||
|
};
|
|||
|
|
|||
|
class C4PRgn : public CObject {
|
|||
|
public:
|
|||
|
CPoint m_ptLU,m_ptLD,m_ptRU,m_ptRD; //<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʾʱռ<CAB1>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>m_ptLU<4C><55>m_ptRU<52><55>m_ptRD<52><44>m_ptLD<4C><44>m_ptLU
|
|||
|
|
|||
|
public:
|
|||
|
C4PRgn();
|
|||
|
C4PRgn(C4PRgn &a);
|
|||
|
C4PRgn(CPoint ptLU,CPoint ptLD,CPoint ptRU,CPoint ptRD);
|
|||
|
void operator=(C4PRgn &a);
|
|||
|
BOOL operator==(C4PRgn& a);
|
|||
|
};
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// x
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntRound(double x);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// (nPx,nPy)<29><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>,(x,y)<29><>תԭ<D7AA><D4AD>,dSinBeta,dCosBeta<74><61>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ת<EFBFBD>Ƕȵ<C7B6><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// (nPxNew,nPyNew)<29><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ֵ
|
|||
|
void PointRotate(int nPx,int nPy,int x,int y,double dSinBeta,double dCosBeta,int& nPxNew,int& nPyNew);
|
|||
|
void PointRotate(double dX,double dY,double dXO,double dYO,double dSinBeta,double dCosBeta,double& dXNew,double& dYNew);
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint<6E><74><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>,ptPointO<74><4F>תԭ<D7AA><D4AD>,dSinBeta,dCosBeta<74><61>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ת<EFBFBD>Ƕȵ<C7B6><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint<6E><74>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ֵ
|
|||
|
void PointRotate(CPoint &ptPoint,CPoint ptPointO,double dSinBeta,double dCosBeta);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint1<74><31><EFBFBD><EFBFBD>ת<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>,ptPointO<74><4F>תԭ<D7AA><D4AD>,dSinBeta,dCosBeta<74><61>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ת<EFBFBD>Ƕȵ<C7B6><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint2<74><32>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ֵ
|
|||
|
void PointRotate(CList<CPoint,CPoint> &listPoint1,CPoint ptPointO,double dSinBeta,double dCosBeta,CList<CPoint,CPoint> &listPoint2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint1<74><31>ƽ<EFBFBD>Ƶĵ<C6B5><C4B5><EFBFBD>
|
|||
|
// nDx,nDy XY<58><59><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint2ƽ<32>ƺ<EFBFBD><C6BA><EFBFBD>ֵ
|
|||
|
void PointMove(CList<CPoint,CPoint> &listPoint1,int nDx,int nDy,CList<CPoint,CPoint> &listPoint2);
|
|||
|
|
|||
|
//<2F><>ptPoint<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// dScale >1<>Ŵ<EFBFBD>,<1<><31>С
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ĵ<EFBFBD>
|
|||
|
CPoint PointScale(CPoint ptPoint,double dScale);
|
|||
|
//<2F><>ptPointOΪ<4F><CEAA><EFBFBD><EFBFBD>ԭ<EFBFBD>㣬<EFBFBD><E3A3AC>ptPoint<6E><74><EFBFBD><EFBFBD>dScale
|
|||
|
CPoint PointScale(CPoint ptPoint,CPoint ptPointO,double dScale);
|
|||
|
//<2F><>ptPointOΪ<4F><CEAA><EFBFBD><EFBFBD>ԭ<EFBFBD>㣬<EFBFBD><E3A3AC>ptPointO<74><4F>ptPoint1Ϊ<31><CEAA><EFBFBD><EFBFBD>ptPoint<6E><74><EFBFBD><EFBFBD>dScale
|
|||
|
CPoint PointScale(CPoint ptPoint,CPoint ptPointO,CPoint ptPoint1,double dScale);
|
|||
|
|
|||
|
//<2F>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptOffset ƽ<><C6BD><EFBFBD><EFBFBD>
|
|||
|
// dScale <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><C5BA>ĵ<EFBFBD>
|
|||
|
CPoint PointMoveScale(CPoint ptPoint,CPoint ptOffset,double dScale);
|
|||
|
|
|||
|
//20140603 <20>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ת
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptOrignalS תԲ<D7AA><D4B2>S
|
|||
|
// ptOrignalE <20><>תԲ<D7AA><D4B2>E
|
|||
|
// ptRotateS <20><>ת<EFBFBD><D7AA>S
|
|||
|
// ptRotateE <20><>ת<EFBFBD><D7AA>E
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|||
|
// ƽ<><C6BD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
|
|||
|
CPoint PointMoveRotate(CPoint ptPoint, CPoint ptOrignalS, CPoint ptOrignalE, CPoint ptRotateS, CPoint ptRotateE);
|
|||
|
|
|||
|
//20140603 <20>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ת
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptOrignalS תԲ<D7AA><D4B2>S
|
|||
|
// ptOrignalE <20><>תԲ<D7AA><D4B2>E
|
|||
|
// ptRotateS <20><>ת<EFBFBD><D7AA>S
|
|||
|
// ptRotateE <20><>ת<EFBFBD><D7AA>E
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listMoveRotatePointƽ<74><C6BD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>
|
|||
|
void PointMoveRotate(CList<CPoint, CPoint> &listPoint, CPoint ptOrignalS, CPoint ptOrignalE, CPoint ptRotateS, CPoint ptRotateE, CList<CPoint, CPoint> &listMoveRotatePoint);
|
|||
|
|
|||
|
//<2F><>һԪ<D2BB><D4AA><EFBFBD>η<EFBFBD><CEB7><EFBFBD>ax2+bx+c=0
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =0,<2C><EFBFBD>
|
|||
|
// =1,<2C><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>x1(x2=x1)
|
|||
|
// =2,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x1,x2
|
|||
|
// =3,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>
|
|||
|
int Quadratic(double a,double b,double c,double& x1,double& x2);
|
|||
|
|
|||
|
//<2F><>ֱ<EFBFBD>߷<EFBFBD><DFB7><EFBFBD>ax+by+c=0<><30>ϵ<EFBFBD><CFB5>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// (x1,y1),(x2_y2) ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// a,b,c ֱ<>߷<EFBFBD><DFB7><EFBFBD>ax+by+c=0<><30>ϵ<EFBFBD><CFB5>
|
|||
|
void LineEquationCoefficient(int x1,int y1,int x2,int y2,double& a,double& b,double& c);
|
|||
|
void LineEquationCoefficient(double x1,double y1,double x2,double y2,double& a,double& b,double& c);
|
|||
|
|
|||
|
//<2F><>ֱ<EFBFBD>߷<EFBFBD><DFB7><EFBFBD>ax+by+c=0<><30>ϵ<EFBFBD><CFB5>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint1,ptPoint2 ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// a,b,c ֱ<>߷<EFBFBD><DFB7><EFBFBD>ax+by+c=0<><30>ϵ<EFBFBD><CFB5>
|
|||
|
void LineEquationCoefficient(CPoint ptPoint1,CPoint ptPoint2,double& a,double& b,double& c);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// a1,b1,c1 ֱ<><D6B1>a1*x+b1*y+c1=0
|
|||
|
// a2,b2,c2 ֱ<><D6B1>a2*x+b2*y+c2=0
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (x,y) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,<2C>н<EFBFBD><D0BD><EFBFBD>(x,y)
|
|||
|
// =2,<2C><>ֱ<EFBFBD><D6B1><EFBFBD>غ<EFBFBD>
|
|||
|
int IntOfTwoLine(double a1,double b1,double c1,double a2,double b2,double c2,double& x,double& y);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// a1,b1,c1 ֱ<><D6B1>a1*x+b1*y+c1=0
|
|||
|
// a2,b2,c2 ֱ<><D6B1>a2*x+b2*y+c2=0
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (nx,ny) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,<2C>н<EFBFBD><D0BD><EFBFBD>(nx,ny)
|
|||
|
// =2,<2C><>ֱ<EFBFBD><D6B1><EFBFBD>غ<EFBFBD>
|
|||
|
int IntOfTwoLine(double a1,double b1,double c1,double a2,double b2,double c2,int& nx,int& ny);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (nXS1,nYS1),(nXE1,nYE1) ֱ<><D6B1>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (nXS2,nYS2),(nXE2,nYE2) ֱ<><D6B1>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (nx,ny) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,<2C>н<EFBFBD><D0BD><EFBFBD>(nx,ny)
|
|||
|
// =2,<2C><>ֱ<EFBFBD><D6B1><EFBFBD>غ<EFBFBD>
|
|||
|
int IntOfTwoLine(int nXS1,int nYS1,int nXE1,int nYE1,int nXS2,int nYS2,int nXE2,int nYE2,int& nx,int& ny);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// PointS1_PointE1 ֱ<><D6B1>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
|
|||
|
// PointS2_PointE2 ֱ<><D6B1>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptIntersection <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,<2C>н<EFBFBD><D0BD><EFBFBD>ptIntersection
|
|||
|
// =2,<2C><>ֱ<EFBFBD><D6B1><EFBFBD>غ<EFBFBD>
|
|||
|
int IntOfTwoLine(POINT PointS1,POINT PointE1,POINT PointS2,POINT PointE2,POINT& ptIntersection);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֱ<EFBFBD>߶εĽ<CEB5><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (nXS1,nYS1),(nXE1,nYE1) ֱ<>߶<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (nXS2,nYS2),(nXE2,nYE2) ֱ<>߶<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (nx,ny) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,<2C><><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>),<2C><><EFBFBD><EFBFBD>(nx,ny)
|
|||
|
// =2,<2C><><EFBFBD>㲻<EFBFBD><E3B2BB><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>),<2C><><EFBFBD><EFBFBD>(nx,ny)
|
|||
|
// =3,û<>й<EFBFBD>ͬ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>߶<EFBFBD>,<2C><><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>ͬһֱ<D2BB><D6B1><EFBFBD><EFBFBD>(<28><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ϵĽ<CFB5><C4BD><EFBFBD>)<29><>û<EFBFBD>й<EFBFBD>ͬ<EFBFBD>Ķ˵<C4B6>
|
|||
|
// =4,<2C>й<EFBFBD>ͬ<EFBFBD>˵<EFBFBD><CBB5>IJ<EFBFBD><C4B2>ص<EFBFBD><D8B5>߶<EFBFBD>,<2C><><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>ͬһֱ<D2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>һ<EFBFBD><D2BB><EFBFBD>˵<EFBFBD><CBB5>ص<EFBFBD>(nx,ny)
|
|||
|
// =5,<2C>й<EFBFBD>ͬ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>߶<EFBFBD>,<2C><><EFBFBD><EFBFBD>(nx,ny)<29><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>зǹ<D0B7>ͬ<EFBFBD>Ķ˵<C4B6>
|
|||
|
int IntOfTwoLineSegment(int nXS1,int nYS1,int nXE1,int nYE1,int nXS2,int nYS2,int nXE2,int nYE2,int& nx,int& ny);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֱ<EFBFBD>߶εĽ<CEB5><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// PointS1_PointE1 ֱ<>߶<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
|
|||
|
// PointS2_PointE2 ֱ<>߶<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptIntersection <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,<2C><><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>),<2C><><EFBFBD><EFBFBD>ptIntersection
|
|||
|
// =2,<2C><><EFBFBD>㲻<EFBFBD><E3B2BB><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>),<2C><><EFBFBD><EFBFBD>ptIntersection
|
|||
|
// =3,û<>й<EFBFBD>ͬ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>߶<EFBFBD>,<2C><><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>ͬһֱ<D2BB><D6B1><EFBFBD><EFBFBD>(<28><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ϵĽ<CFB5><C4BD><EFBFBD>)<29><>û<EFBFBD>й<EFBFBD>ͬ<EFBFBD>Ķ˵<C4B6>
|
|||
|
// =4,<2C>й<EFBFBD>ͬ<EFBFBD>˵<EFBFBD><CBB5>IJ<EFBFBD><C4B2>ص<EFBFBD><D8B5>߶<EFBFBD>,<2C><><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>ͬһֱ<D2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>һ<EFBFBD><D2BB><EFBFBD>˵<EFBFBD><CBB5>ص<EFBFBD>ptIntersection
|
|||
|
// =5,<2C>й<EFBFBD>ͬ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>߶<EFBFBD>,<2C><><EFBFBD><EFBFBD>ptIntersection<6F><6E><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>зǹ<D0B7>ͬ<EFBFBD>Ķ˵<C4B6>
|
|||
|
int IntOfTwoLineSegment(POINT PointS1,POINT PointE1,POINT PointS2,POINT PointE2,POINT& ptIntersection);
|
|||
|
|
|||
|
//<2F><>ֱ<EFBFBD>ߺ<EFBFBD>ֱ<EFBFBD>߶εĽ<CEB5><C4BD><EFBFBD>!!!
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ֱ<EFBFBD>ߺ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>߶εĽ<CEB5><C4BD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶λ<DFB6><CEBB><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>!!!
|
|||
|
// <20>μ<EFBFBD>IntOfTwoLineSegment(...),IntOfTwoLine(...).
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// a1,b1,c1 ֱ<><D6B1>a1*x+b1*y+c1=0
|
|||
|
// (nXS2,nYS2),(nXE2,nYE2) <20>߶ε<DFB6><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptIntersection <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>),<2C><><EFBFBD><EFBFBD>(nx,ny)
|
|||
|
// =2,<2C><><EFBFBD>㲻<EFBFBD><E3B2BB><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>),<2C><><EFBFBD><EFBFBD>(nx,ny)
|
|||
|
// =3,ֱ<>ߺ<EFBFBD><DFBA>߶<EFBFBD><DFB6><EFBFBD>ͬһֱ<D2BB><D6B1><EFBFBD><EFBFBD>
|
|||
|
int IntOfLineLineSegment(double a1,double b1,double c1,int nXS2,int nYS2,int nXE2,int nYE2,int& nx,int& ny);
|
|||
|
|
|||
|
//<2F><>ֱ<EFBFBD>ߺ<EFBFBD>ֱ<EFBFBD>߶εĽ<CEB5><C4BD><EFBFBD>!!!
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ֱ<EFBFBD>ߺ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>߶εĽ<CEB5><C4BD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶λ<DFB6><CEBB><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>!!!
|
|||
|
// <20>μ<EFBFBD>IntOfTwoLineSegment(...),IntOfTwoLine(...).
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// a1,b1,c1 ֱ<><D6B1>a1*x+b1*y+c1=0
|
|||
|
// PointS2,PointE2 <20>߶ε<DFB6><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptIntersection <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>),<2C><><EFBFBD><EFBFBD>ptIntersection
|
|||
|
// =2,<2C><><EFBFBD>㲻<EFBFBD><E3B2BB><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>),<2C><><EFBFBD><EFBFBD>ptIntersection
|
|||
|
// =3,ֱ<>ߺ<EFBFBD><DFBA>߶<EFBFBD><DFB6><EFBFBD>ͬһֱ<D2BB><D6B1><EFBFBD><EFBFBD>
|
|||
|
int IntOfLineLineSegment(double a1,double b1,double c1,POINT PointS2,POINT PointE2,POINT& ptIntersection);
|
|||
|
|
|||
|
//<2F><>ֱ<EFBFBD>ߺ<EFBFBD>ֱ<EFBFBD>߶εĽ<CEB5><C4BD><EFBFBD>!!!
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ֱ<EFBFBD>ߺ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>߶εĽ<CEB5><C4BD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶λ<DFB6><CEBB><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>!!!
|
|||
|
// <20>μ<EFBFBD>IntOfTwoLineSegment(...),IntOfTwoLine(...).
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (nXS1,nYS1),(nXE1,nYE1) ֱ<>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (nXS2,nYS2),(nXE2,nYE2) <20>߶ε<DFB6><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (nx,ny) <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>),<2C><><EFBFBD><EFBFBD>(nx,ny)
|
|||
|
// =2,<2C><><EFBFBD>㲻<EFBFBD><E3B2BB><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>),<2C><><EFBFBD><EFBFBD>(nx,ny)
|
|||
|
// =3,ֱ<>ߺ<EFBFBD><DFBA>߶<EFBFBD><DFB6><EFBFBD>ͬһֱ<D2BB><D6B1><EFBFBD><EFBFBD>
|
|||
|
int IntOfLineLineSegment(int nXS1,int nYS1,int nXE1,int nYE1,int nXS2,int nYS2,int nXE2,int nYE2,int& nx,int& ny);
|
|||
|
|
|||
|
//<2F><>ֱ<EFBFBD>ߺ<EFBFBD>ֱ<EFBFBD>߶εĽ<CEB5><C4BD><EFBFBD>!!!
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ֱ<EFBFBD>ߺ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>߶εĽ<CEB5><C4BD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶λ<DFB6><CEBB><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>!!!
|
|||
|
// <20>μ<EFBFBD>IntOfTwoLineSegment(...),IntOfTwoLine(...).
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// PointS1_PointE1 ֱ<>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
|
|||
|
// PointS2_PointE2 <20>߶ε<DFB6><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptIntersection <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>),<2C><><EFBFBD><EFBFBD>ptIntersection
|
|||
|
// =2,<2C><><EFBFBD>㲻<EFBFBD><E3B2BB><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>),<2C><><EFBFBD><EFBFBD>ptIntersection
|
|||
|
// =3,ֱ<>ߺ<EFBFBD><DFBA>߶<EFBFBD><DFB6><EFBFBD>ͬһֱ<D2BB><D6B1><EFBFBD><EFBFBD>
|
|||
|
int IntOfLineLineSegment(POINT PointS1,POINT PointE1,POINT PointS2,POINT PointE2,POINT& ptIntersection);
|
|||
|
//<2F><>ʸ<EFBFBD><CAB8>ptPointS1<53><31>ptPointE1<45><31>ʸ<EFBFBD><CAB8>ptPointS2<53><32>ptPointE2<45>Ľ<EFBFBD><C4BD><EFBFBD>!!!
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// PointS1,PointE1 ʸ<><CAB8>ptPointS1<53><31>ptPointE1
|
|||
|
// PointS2,PointE2 ʸ<><CAB8>ptPointS2<53><32>ptPointE2
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptIntersection <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,<2C>н<EFBFBD><D0BD><EFBFBD>ptIntersection
|
|||
|
// =2,<2C><>ֱ<EFBFBD><D6B1><EFBFBD>غ<EFBFBD>
|
|||
|
int IntOfTwoVectorLine(POINT PointS1,POINT PointE1,POINT PointS2,POINT PointE2,POINT& ptIntersection);
|
|||
|
|
|||
|
//ֱ<>ߺ<EFBFBD>Բ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// a,b,c ֱ<><D6B1>:ax+by+c=0;
|
|||
|
// (xc,yc) Բ<><D4B2>
|
|||
|
// nR <20>뾶
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// lpptIntersection1,lpptIntersection2 ֱ<>ߺ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// =2,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntOfLineCircle(double a,double b,double c,int xc,int yc,int nR,LPPOINT lpptIntersection1,LPPOINT lpptIntersection2);
|
|||
|
|
|||
|
//ֱ<>ߺ<EFBFBD>Բ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPointS,ptPointE ֱ<>ߵ<EFBFBD><DFB5><EFBFBD>ֹ<EFBFBD><D6B9>
|
|||
|
// ptCenter Բ<><D4B2>
|
|||
|
// nRadius <20>뾶
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// lpptIntersection1,lpptIntersection2 ֱ<>ߺ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// =2,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntOfLineCircle(POINT ptPointS,POINT ptPointE,POINT ptCenter,int nRadius,LPPOINT lpptIntersection1,LPPOINT lpptIntersection2);
|
|||
|
|
|||
|
//ֱ<>ߺ<EFBFBD>Բ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPointS,ptPointE ֱ<>ߵ<EFBFBD><DFB5><EFBFBD>ֹ<EFBFBD><D6B9>
|
|||
|
// ptCenter Բ<><D4B2>
|
|||
|
// nRadius <20>뾶
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptIntersection1,ptIntersection2 ֱ<>ߺ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// =2,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntOfLineCircle(POINT ptPointS,POINT ptPointE,POINT ptCenter,int nRadius,CPoint& ptIntersection1,CPoint& ptIntersection2);
|
|||
|
|
|||
|
//ֱ<>߶κ<DFB6>Բ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPointS,ptPointE ֱ<>߶ε<DFB6><CEB5><EFBFBD>ֹ<EFBFBD><D6B9>
|
|||
|
// ptCenter Բ<><D4B2>
|
|||
|
// nRadius <20>뾶
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// lpptIntersection1,lpptIntersection2 ֱ<>ߺ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>)
|
|||
|
// =2,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>)
|
|||
|
int IntOfLineSegmentCircle(POINT ptPointS,POINT ptPointE,POINT ptCenter,int nRadius,LPPOINT lpptIntersection1,LPPOINT lpptIntersection2);
|
|||
|
|
|||
|
//ֱ<>߶κ<DFB6>Բ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPointS,ptPointE ֱ<>߶ε<DFB6><CEB5><EFBFBD>ֹ<EFBFBD><D6B9>
|
|||
|
// ptCenter Բ<><D4B2>
|
|||
|
// nRadius <20>뾶
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptIntersection1,ptIntersection2 ֱ<>߶κ<DFB6>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>)
|
|||
|
// =2,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>)
|
|||
|
int IntOfLineSegmentCircle(POINT ptPointS,POINT ptPointE,POINT ptCenter,int nRadius,CPoint& ptIntersection1,CPoint& ptIntersection2);
|
|||
|
|
|||
|
//<2F><><EFBFBD>ߺ<EFBFBD>Բ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD>
|
|||
|
// ptCenter Բ<><D4B2>
|
|||
|
// nRadius <20>뾶
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listIntPoint <20><><EFBFBD>ߺ<EFBFBD>Բ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(=0,û<>н<EFBFBD><D0BD><EFBFBD>)
|
|||
|
int IntOfPolylineCircle(CList<CPoint,CPoint> &listPolyline,POINT ptCenter,int nRadius,CList<CPoint,CPoint> &listIntPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>Բ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// x1,y1,r1 Բ:(x-x1)*(x-x1) + (y-y1)*(y-y1) = r1*r1
|
|||
|
// x2,y2,r2 Բ:(x-x2)*(x-x2) + (y-y2)*(y-y2) = r2*r2
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (nIntX1,nIntY1),(nIntX2,nIntY2) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,<2C><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// =2,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntOfTwoCircle(int x1,int y1,int r1,int x2,int y2,int r2,int& nIntX1,int& nIntY1,int& nIntX2,int& nIntY2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>Բ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptCenter1,nRadius1 Բ<>ĺͰ뾶
|
|||
|
// ptCenter2,nRadius2 Բ<>ĺͰ뾶
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// lpptIntersection1,lpptIntersection2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,<2C><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// =2,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntOfTwoCircle(POINT ptCenter1,int nRadius1,POINT ptCenter2,int nRadius2,LPPOINT lpptIntersection1,LPPOINT lpptIntersection2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>Բ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptCenter1,nRadius1 Բ<>ĺͰ뾶
|
|||
|
// ptCenter2,nRadius2 Բ<>ĺͰ뾶
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptIntersection1,ptIntersection2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// =0,û<>н<EFBFBD><D0BD><EFBFBD>
|
|||
|
// =1,<2C><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// =2,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntOfTwoCircle(POINT ptCenter1,int nRadius1,POINT ptCenter2,int nRadius2,CPoint& ptIntersection1,CPoint& ptIntersection2);
|
|||
|
|
|||
|
//<2F><><EFBFBD>߶κ<DFB6><CEBA><EFBFBD><EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>
|
|||
|
//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶κ<DFB6><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĸ<D0B5><C4B8>߶εĽ<CEB5><C4BD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĸ<D0B5><C4B8>߶εĽ<CEB5><C4BD><EFBFBD>!!!
|
|||
|
// <20>μ<EFBFBD>IntOfLinePolyline(...).
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPointS,ptPointE ֱ<>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listIntPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntOfLineSegmentPolyline(CPoint ptPointS,CPoint ptPointE,CList<CPoint,CPoint>& listPolyline,CList<CPoint,CPoint>& listIntPoint);
|
|||
|
//<2F><>IntOfLineSegmentPolyline(...)<29><><EFBFBD><EFBFBD>,IntOfLineSegmentPolyline_Old(...)<29>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>"case 2:")
|
|||
|
int IntOfLineSegmentPolyline_Old(CPoint ptPointS,CPoint ptPointE,CList<CPoint,CPoint>& listPolyline,CList<CPoint,CPoint>& listIntPoint);
|
|||
|
|
|||
|
//<2F><>ʸ<EFBFBD><CAB8>ptPointS<74><53>ptPointE<74><45><EFBFBD><EFBFBD><EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>!!!
|
|||
|
//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĸ<D0B5><C4B8>߶εĽ<CEB5><C4BD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>(<28><>ֱ<EFBFBD>߶<EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĸ<D0B5><C4B8>߶εĽ<CEB5><C4BD><EFBFBD>!!!
|
|||
|
// Ҫ<><EFBFBD><F3BDBBB5><EFBFBD><EFBFBD>߶<EFBFBD>ptPointS_ptPointE<74>ϻ<EFBFBD><CFBB><EFBFBD>ʸ<EFBFBD><CAB8>ptPointS<74><53>ptPointE<74><45><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// <20>μ<EFBFBD>IntOfLineSegmentPolyline(...)<29><>IntOfLinePolyline(...).
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPointS,ptPointE ʸ<><CAB8>ptPointS<74><53>ptPointE
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listIntPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntOfVectorLinePolyline(CPoint ptPointS,CPoint ptPointE,CList<CPoint,CPoint>& listPolyline,CList<CPoint,CPoint>& listIntPoint);
|
|||
|
|
|||
|
//<2F><>ֱ<EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>!!!
|
|||
|
//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĸ<D0B5><C4B8>߶εĽ<CEB5><C4BD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>߶κ<DFB6><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĸ<D0B5><C4B8>߶εĽ<CEB5><C4BD><EFBFBD>!!!
|
|||
|
// <20>μ<EFBFBD>IntOfLineSegmentPolyline(...).
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPointS,ptPointE ֱ<>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listIntPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntOfLinePolyline(CPoint ptPointS,CPoint ptPointE,CList<CPoint,CPoint>& listPolyline,CList<CPoint,CPoint>& listIntPoint);
|
|||
|
|
|||
|
//<2F><>ֱ<EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>!!!
|
|||
|
//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĸ<D0B5><C4B8>߶εĽ<CEB5><C4BD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>߶κ<DFB6><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĸ<D0B5><C4B8>߶εĽ<CEB5><C4BD><EFBFBD>!!!
|
|||
|
// <20>μ<EFBFBD>IntOfLineSegmentPolyline(...).
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// a,b,c ֱ<>߷<EFBFBD><DFB7><EFBFBD>ax+by+c=0
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listIntPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntOfLinePolyline(double a,double b,double c,CList<CPoint,CPoint>& listPolyline,CList<CPoint,CPoint>& listIntPoint);
|
|||
|
|
|||
|
//<2F><>ֱ<EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ӳ<EFBFBD><D3B3>ߵĽ<DFB5><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPointS,ptPointE ֱ<>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD>
|
|||
|
// dLength <20><><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptIntPoint <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntOfLinePolylineExtendHead(CPoint ptPointS,CPoint ptPointE,CList<CPoint,CPoint>& listPolyline,double dLength,CPoint &ptIntPoint);
|
|||
|
int IntOfLinePolylineExtendHead(double a,double b,double c,CList<CPoint,CPoint>& listPolyline,double dLength,CPoint &ptIntPoint);
|
|||
|
|
|||
|
//<2F><>ֱ<EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD><CEB2><EFBFBD>ӳ<EFBFBD><D3B3>ߵĽ<DFB5><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPointS,ptPointE ֱ<>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD>
|
|||
|
// dLength <20><><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptIntPoint <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntOfLinePolylineExtendTail(CPoint ptPointS,CPoint ptPointE,CList<CPoint,CPoint>& listPolyline,double dLength,CPoint &ptIntPoint);
|
|||
|
int IntOfLinePolylineExtendTail(double a,double b,double c,CList<CPoint,CPoint>& listPolyline,double dLength,CPoint &ptIntPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPolyline1 <20><><EFBFBD><EFBFBD>
|
|||
|
// listPolyline2 <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listIntPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>listPolyline1<65>ij<EFBFBD><C4B3><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntOfTwoPolyline(CList<CPoint,CPoint>& listPolyline1,CList<CPoint,CPoint>& listPolyline2,CList<CPoint,CPoint>& listIntPoint);
|
|||
|
|
|||
|
//[20161229 syf]<5D><><EFBFBD><EFBFBD><EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// (1)<29>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IntOfTwoPolyline()<29><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>IntOfTwoLineSegment()<29>ķ<EFBFBD><C4B7><EFBFBD>ֵʱ,{1,4,5}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>IntOfTwoPolyline()<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPolyline1 <20><><EFBFBD><EFBFBD>
|
|||
|
// listPolyline2 <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listIntPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>listPolyline1<65>ij<EFBFBD><C4B3><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int IntOfTwoPolyline_101(CList<CPoint,CPoint>& listPolyline1,CList<CPoint,CPoint>& listPolyline2,CList<CPoint,CPoint>& listIntPoint);
|
|||
|
|
|||
|
//ƥ<><C6A5><EFBFBD><EFBFBD>ֱ<EFBFBD>߶εĽ<CEB5><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPoint
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPointS1_ptPointE1 ֱ<>߶<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
|
|||
|
// ptPointS2_ptPointE2 ֱ<>߶<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptIntersection <20><><EFBFBD><EFBFBD>
|
|||
|
// dDistance ʵ<>ʾ<EFBFBD><CABE><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD><EFBFBD>ֱ<EFBFBD>߶εĽ<CEB5><C4BD><EFBFBD>ptIntersection<6F><6E>ptPoint<6E>ľ<EFBFBD><C4BE><EFBFBD><=dMaxError,<2C><EFBFBD>true.<2E><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL FixPointIntOfTwoLineSegment(POINT ptPoint,double dMaxError,POINT ptPointS1,POINT ptPointE1,
|
|||
|
POINT ptPointS2,POINT ptPointE2,POINT& ptIntersection,double& dDistance);
|
|||
|
|
|||
|
//ƥ<><C6A5><EFBFBD>߶κ<DFB6>Բ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPointS,ptPointE ֱ<>߶ε<DFB6><CEB5><EFBFBD>ֹ<EFBFBD><D6B9>
|
|||
|
// ptCenter Բ<><D4B2>
|
|||
|
// nRadius <20>뾶
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptIntersection <20><><EFBFBD><EFBFBD>
|
|||
|
// dDistance ʵ<>ʾ<EFBFBD><CABE><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD>߶κ<DFB6>Բ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>ptIntersection<6F><6E>ptPoint<6E>ľ<EFBFBD><C4BE><EFBFBD><=dMaxError,<2C><EFBFBD>true.<2E><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL FixPointIntOfLineSegmentCircle(POINT ptPoint,double dMaxError,POINT ptPointS,POINT ptPointE,
|
|||
|
POINT ptCenter,int nRadius,POINT& ptIntersection,double& dDistance);
|
|||
|
|
|||
|
//ƥ<><C6A5><EFBFBD><EFBFBD>Բ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPoint
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptCenter1,nRadius1 Բ<>ĺͰ뾶
|
|||
|
// ptCenter2,nRadius2 Բ<>ĺͰ뾶
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptIntersection <20><><EFBFBD><EFBFBD>
|
|||
|
// dDistance ʵ<>ʾ<EFBFBD><CABE><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD><EFBFBD>Բ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>ptIntersection<6F><6E>ptPoint<6E>ľ<EFBFBD><C4BE><EFBFBD><=dMaxError,<2C><EFBFBD>true.<2E><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL FixPointIntOfTwoCircle(POINT ptPoint,double dMaxError,POINT ptCenter1,int nRadius1,
|
|||
|
POINT ptCenter2,int nRadius2,POINT& ptIntersection,double& dDistance);
|
|||
|
|
|||
|
//ƥ<><C6A5><EFBFBD>߶κ<DFB6><CEBA><EFBFBD><EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPoint
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPointS,ptPointE <20>߶<EFBFBD>
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptIntersection <20><><EFBFBD><EFBFBD>
|
|||
|
// dDistance ʵ<>ʾ<EFBFBD><CABE><EFBFBD>
|
|||
|
// nLocate <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>(<28><>nLocate<74><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD>߶κ<DFB6><CEBA><EFBFBD><EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>ptIntersection<6F><6E>ptPoint<6E>ľ<EFBFBD><C4BE><EFBFBD><=dMaxError,<2C><EFBFBD>true.<2E><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL FixPointIntOfLineSegmentPolyline(POINT ptPoint,double dMaxError,POINT ptPointS,
|
|||
|
POINT ptPointE,CList <CPoint,CPoint> &listPolyline,
|
|||
|
POINT &ptIntersection,double &dDistance,int& nLocate);
|
|||
|
|
|||
|
//ƥ<><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPoint
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPolyline1 <20><><EFBFBD><EFBFBD>1
|
|||
|
// listPolyline2 <20><><EFBFBD><EFBFBD>2
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptIntersection <20><><EFBFBD><EFBFBD>
|
|||
|
// dDistance ʵ<>ʾ<EFBFBD><CABE><EFBFBD>
|
|||
|
// nLocate <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>(<28><>nLocate<74><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>ptIntersection<6F><6E>ptPoint<6E>ľ<EFBFBD><C4BE><EFBFBD><=dMaxError,<2C><EFBFBD>true.<2E><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL FixPointIntOfTwoPolyline(POINT ptPoint,double dMaxError,CList <CPoint,CPoint> &listPolyline1,
|
|||
|
CList <CPoint,CPoint> &listPolyline2,POINT &ptIntersection,double &dDistance,int& nLocate);
|
|||
|
|
|||
|
//<2F>˵<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB>(ptPoint.x-nMaxError,ptPoint.y-nMaxError)__(ptPoint.x+nMaxError,ptPoint.y-nMaxError)
|
|||
|
//֮<><D6AE><EFBFBD><EFBFBD><EFBFBD>߶ε<DFB6>ɾ<EFBFBD><C9BE>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|||
|
// nMaxError <20><><EFBFBD>İ뾶
|
|||
|
// listPoint1 <20>˵<EFBFBD>ǰ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint2 <20>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
|
|||
|
void FilterPointOfListPoint(POINT ptPoint,int nMaxError,CList <CPoint,CPoint> &listPoint1,CList <CPoint,CPoint> &listPoint2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(nPx,nPy)<29><>ֱ<EFBFBD><D6B1>ax+by+c=0<><30>ֱ<EFBFBD><D6B1>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ax+by+c=0<>Ľ<EFBFBD><C4BD><EFBFBD>(nFixX,nFixY)
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (nPx,nPy)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// a,b,c <20><><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵ<EFBFBD>ϵ<EFBFBD><CFB5>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (nFixX,nFixY)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void IntOfLinePointVL(int nPx,int nPy,double a,double b,double c,int& nFixX,int& nFixY);
|
|||
|
void IntOfLinePointVL(double dPx,double dPy,double a,double b,double c,double& dFixX,double& dFixY);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptPoint1<74><31>ֱ<EFBFBD><D6B1>ax+by+c=0<><30>ֱ<EFBFBD><D6B1>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ax+by+c=0<>Ľ<EFBFBD><C4BD><EFBFBD>ptPoint2
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPoint1<74><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// a,b,c <20><><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵ<EFBFBD>ϵ<EFBFBD><CFB5>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPoint2<74><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void IntOfLinePointVL(CPoint ptPoint1,double a,double b,double c,CPoint& ptPoint2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptPoint1<74><31>ֱ<EFBFBD><D6B1>ptPoint2_ptPoint3<74><33>ֱ<EFBFBD><D6B1>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ptPoint2_ptPoint3<74>Ľ<EFBFBD><C4BD><EFBFBD>ptPoint4
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPoint1<74><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPoint2,ptPoint3 <20><><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPoint4<74><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void IntOfLinePointVL(CPoint ptPoint1,CPoint ptPoint2,CPoint ptPoint3,CPoint& ptPoint4);
|
|||
|
|
|||
|
//<2F><>(x2,y2)_(x3,y3)Ϊ<>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD>ĶԳƵ<D4B3>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
// (x1,y1) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (x2,y2)_(x3,y3) <20><><EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD><D4B3><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// (nPx,nPy) <20>ԳƵ<D4B3>
|
|||
|
void SymmetryPoint(int x1,int y1,int x2,int y2,int x3,int y3,int& nPx,int& nPy);
|
|||
|
//<2F><>ptPoint2_ptPoint3Ϊ<33>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD>ĶԳƵ<D4B3>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
// ptPoint1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPoint2_ptPoint3 <20><><EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD><D4B3><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint4 <20>ԳƵ<D4B3>
|
|||
|
void SymmetryPoint(CPoint ptPoint1,CPoint ptPoint2,CPoint ptPoint3,CPoint &ptPoint4);
|
|||
|
//<2F><>ptPoint1_ptPoint2Ϊ<32>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD>ĶԳƵ<D4B3>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
// listPoint1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPoint1_ptPoint2 <20><><EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD><D4B3><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint2 <20>ԳƵ<D4B3><C6B5><EFBFBD>
|
|||
|
void SymmetryPoint(CList<CPoint,CPoint> &listPoint1,CPoint ptPoint1,CPoint ptPoint2,CList<CPoint,CPoint> &listPoint2);
|
|||
|
//<2F><>ֱ<EFBFBD><D6B1>ax+by+c=0Ϊ<30>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD>ĶԳƵ<D4B3>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
// listPoint1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// a,b,c <20><><EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>߷<EFBFBD><DFB7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint2 <20>ԳƵ<D4B3><C6B5><EFBFBD>
|
|||
|
void SymmetryPoint(CList<CPoint,CPoint> &listPoint1,double a,double b,double c,CList<CPoint,CPoint> &listPoint2);
|
|||
|
void SymmetryPoint(CList<CDBLPoint,CDBLPoint> &listDBLPoint1,double a,double b,double c,CList<CDBLPoint,CDBLPoint> &listDBLPoint2);
|
|||
|
//<2F><>ֱ<EFBFBD><D6B1>ax+by+c=0Ϊ<30>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD>ĶԳƵ<D4B3>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
// (x1,y1) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// a,b,c <20><><EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>߷<EFBFBD><DFB7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// (nPx,nPy) <20>ԳƵ<D4B3>
|
|||
|
void SymmetryPoint(int x1,int y1,double a,double b,double c,int& nPx,int& nPy);
|
|||
|
void SymmetryPoint(double x1,double y1,double a,double b,double c,double& dPx,double& dPy);
|
|||
|
//<2F><>ֱ<EFBFBD><D6B1>ax+by+c=0Ϊ<30>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD>ĶԳƵ<D4B3>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
// ptPoint1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// a,b,c <20><><EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>߷<EFBFBD><DFB7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint2 <20>ԳƵ<D4B3>
|
|||
|
void SymmetryPoint(CPoint ptPoint1,double a,double b,double c,CPoint& ptPoint2);
|
|||
|
void SymmetryPoint(CDBLPoint ptDBLPoint1,double a,double b,double c,CDBLPoint& ptDBLPoint2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD>ļн<C4BC>,<2C><>[0,2pi)֮<><D6AE>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// (startx,starty) <20><><EFBFBD><EFBFBD>
|
|||
|
// (endx,endy) <20>յ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20>н<EFBFBD>
|
|||
|
double angle_2(int startx,int starty,int endx,int endy);
|
|||
|
//[20170330 syf]
|
|||
|
double angle_2(double startx,double starty,double endx,double endy);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD>ļн<C4BC>,<2C><>[0,2pi)֮<><D6AE>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPointS <20><><EFBFBD><EFBFBD>
|
|||
|
// ptPointE <20>յ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20>н<EFBFBD>
|
|||
|
double angle_2(POINT ptPointS,POINT ptPointE);
|
|||
|
|
|||
|
//[20170330 syf]
|
|||
|
double angle_2(CDBLPoint ptPointS,CDBLPoint ptPointE);
|
|||
|
|
|||
|
//<2F><>ʸ<EFBFBD><CAB8>ptPointS1<53><31>ptPointE1<45><31>ʱ<EFBFBD>뷽<EFBFBD><EBB7BD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ʸ<EFBFBD><CAB8>ptPointS2<53><32>ptPointE2<45>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļн<C4BC>,<2C><>[0,2pi)֮<><D6AE>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPointS1,ptPointE1 ʸ<><CAB8>ptPointS1<53><31>ptPointE1
|
|||
|
// ptPointS2,ptPointE2 ʸ<><CAB8>ptPointS2<53><32>ptPointE2
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20>н<EFBFBD>
|
|||
|
double angle_2(POINT ptPointS1,POINT ptPointE1,POINT ptPointS2,POINT ptPointE2);
|
|||
|
|
|||
|
//[20170330 syf]
|
|||
|
double angle_2(CDBLPoint ptPointS1,CDBLPoint ptPointE1,CDBLPoint ptPointS2,CDBLPoint ptPointE2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(x1,y1),(x2,y2)<29><>(x3,y3),<2C>Լ<EFBFBD>Բ<EFBFBD><D4B2>(cx,cy),
|
|||
|
//<2F><><EFBFBD><EFBFBD>(x2,y2)<29><>(x1,y1)<29><>(x3,y3)<29>м<EFBFBD>,<2C><><EFBFBD><EFBFBD>ʱ<EFBFBD>뷽<EFBFBD><EFBFBD>ʱ,
|
|||
|
//<2F><>(x1,y1)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,(x3,y3)<29><><EFBFBD>յ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>true,<2C><><EFBFBD><EFBFBD>false
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:<3A>˴<EFBFBD><CBB4><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>X<EFBFBD><58><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>,Y<><59><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>˵<EFBFBD>˴<EFBFBD><CBB4><EFBFBD>˳ʱ<CBB3><CAB1>
|
|||
|
BOOL IsAnticlockwise(long x1,long y1,long x2,long y2,long x3,long y3,long cx,long cy);
|
|||
|
|
|||
|
//[20170330 syf]
|
|||
|
BOOL IsAnticlockwise_Double(double x1,double y1,double x2,double y2,double x3,double y3,double cx,double cy);
|
|||
|
|
|||
|
///////////////////////// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㶨Բʱ<D4B2><CAB1>Բ<EFBFBD>ĺͰ뾶 ///////////////////////////
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(x1,y1),(x2,y2),(x3,y3)
|
|||
|
// <20>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD>:
|
|||
|
// <20><>(x1,y1),(x2,y2)<29><><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L1,
|
|||
|
// <20><>(x2,y2),(x3,y3)<29><><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L2,
|
|||
|
// <20><>L1,L2<4C>Ľ<EFBFBD><C4BD><EFBFBD>.
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>false,
|
|||
|
// <20><><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>Ϊ(cx,cy),<2C>뾶=cr.
|
|||
|
// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD>뷽<EFBFBD><EFBFBD>ʱ,<2C><>cr>0 <20><>(x1,y1)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,(x3,y3)<29><><EFBFBD>յ<EFBFBD>,
|
|||
|
// <20><>cr<0 <20><>(x3,y3)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,(x1,y1)<29><><EFBFBD>յ<EFBFBD>.
|
|||
|
// <20>ر<EFBFBD>˵<EFBFBD><CBB5>:<3A>˴<EFBFBD><CBB4><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>,
|
|||
|
// Y<><59><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>˵<EFBFBD>˴<EFBFBD><CBB4><EFBFBD>˳ʱ<CBB3><CAB1>
|
|||
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
BOOL CircleCR(int x1,int y1,int x2,int y2,int x3,int y3,int& cx,int& cy,int& cr);
|
|||
|
|
|||
|
//[20170330 syf]
|
|||
|
BOOL CircleCR(double x1,double y1,double x2,double y2,double x3,double y3,double& cx,double& cy,double& cr);
|
|||
|
|
|||
|
//<2F><>Բ<EFBFBD><D4B2>һ<EFBFBD>뾶<EFBFBD><EBBEB6>(ptCenter<65><72>ptPoint<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptCenter Բ<><D4B2>
|
|||
|
// nRadius <20>뾶
|
|||
|
// ptPoint <20>뾶<EFBFBD>ϵ<EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ
|
|||
|
// <20><><EFBFBD><EFBFBD>
|
|||
|
CPoint IntOfCircleRadial(CPoint ptCenter,int nRadius,CPoint ptPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>߷<EFBFBD><DFB7><EFBFBD><EFBFBD><EFBFBD>: AX=D
|
|||
|
// <20><> <20><> <20><> <20><> <20><> <20><>
|
|||
|
// <20><> a00 a01 <20><> <20><>x0 <20><> <20><>d0 <20><>
|
|||
|
// <20><> a10 a11 a12 0 <20><> <20><>x1 <20><> <20><>d1 <20><>
|
|||
|
// <20><> a21 a22 a23 <20><> <20><>x2 <20><> <20><>d2 <20><>
|
|||
|
// <20><> . . . <20><> <20><>. <20><> <20><>. <20><>
|
|||
|
// A=<3D><> . . . <20><>, X=<3D><>. <20><>, D=<3D><>. <20><>
|
|||
|
// <20><> . . . <20><> <20><>. <20><> <20><>. <20><>
|
|||
|
// <20><> 0 an-2,n-3 an-2,n-2 an-2,n-1 <20><> <20><>xn-2<><32> <20><>dn-2<><32>
|
|||
|
// <20><> an-1,n-2 an-1,n-1 <20><> <20><>xn-1<><31> <20><>dn-1<><31>
|
|||
|
// <20><> <20><> <20><> <20><> <20><> <20><>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// a[] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>߾<EFBFBD><DFBE><EFBFBD>A<EFBFBD><41>һά<D2BB><CEAC><EFBFBD><EFBFBD>a00,a01,a10,a11,a12,a21,a22,a23,...,(an-1,n-2),(an-1,n-1)
|
|||
|
// n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
// d[] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҷ˵ij<CBB5><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// <20><>Ψһ<CEA8><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>TRUE,<2C><><EFBFBD><EFBFBD>d[]<5D>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD>.
|
|||
|
// <20><><EFBFBD><EFBFBD>FALSE.
|
|||
|
BOOL Cetrd1(double *a,int n,double *d);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ͻǵ<CFBD><C7B5><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>߷<EFBFBD><DFB7><EFBFBD><EFBFBD><EFBFBD>: AX=D
|
|||
|
// <20><> <20><> <20><> <20><> <20><> <20><>
|
|||
|
// <20><> a00 a01 a0n <20><> <20><>x0 <20><> <20><>d0 <20><>
|
|||
|
// <20><> a10 a11 a12 0 <20><> <20><>x1 <20><> <20><>d1 <20><>
|
|||
|
// <20><> a21 a22 a23 <20><> <20><>x2 <20><> <20><>d2 <20><>
|
|||
|
// <20><> . . . <20><> <20><>. <20><> <20><>. <20><>
|
|||
|
// A=<3D><> . . . <20><>, X=<3D><>. <20><>, D=<3D><>. <20><>
|
|||
|
// <20><> . . . <20><> <20><>. <20><> <20><>. <20><>
|
|||
|
// <20><> 0 an-2,n-3 an-2,n-2 an-2,n-1 <20><> <20><>xn-2<><32> <20><>dn-2<><32>
|
|||
|
// <20><> an-1,0 an-1,n-2 an-1,n-1 <20><> <20><>xn-1<><31> <20><>dn-1<><31>
|
|||
|
// <20><> <20><> <20><> <20><> <20><> <20><>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// a[] <20><><EFBFBD>ž<EFBFBD><C5BE><EFBFBD>A<EFBFBD><41>һά<D2BB><CEAC><EFBFBD><EFBFBD>a00,a01,a0n,a10,a11,a12,0,a21,a22,a23,0,...,(an-1,0),(an-1,n-2),(an-1,n-1)
|
|||
|
// n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
// d[] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҷ˵ij<CBB5><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// <20><>Ψһ<CEA8><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>TRUE,<2C><><EFBFBD><EFBFBD>d[]<5D>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD>.
|
|||
|
// <20><><EFBFBD><EFBFBD>FALSE.
|
|||
|
BOOL Cetrd2(double *a,int n,double *d);
|
|||
|
|
|||
|
//<2F>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ö<EFBFBD><C3B6><EFBFBD>Bezier<65><72><EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߱ƽ<DFB1>.
|
|||
|
// <20><> 1 -2 1 <20><><EFBFBD><EFBFBD>P1 <20><>
|
|||
|
// P(t)=[t2 t 1]<5D><>-2 2 0 <20><><EFBFBD><EFBFBD>p2 <20><>
|
|||
|
// <20><> 1 0 0 <20><><EFBFBD><EFBFBD>p3 <20><>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listSP<53><50><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>.
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(>=0.5)
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// <20><><EFBFBD>ϳɹ<CFB3><C9B9><EFBFBD><EFBFBD><EFBFBD>true,
|
|||
|
// listFitP<74>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵõ<DFB5><C3B5>ıƽ<C4B1><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
// <20><><EFBFBD><EFBFBD>false,listFitP<74>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ݺ<EFBFBD>listSP<53><50>ͬ
|
|||
|
BOOL BezierCurve(CList<CPoint,CPoint>& listSP,double dMaxError,CList<CPoint,CPoint>& listFitP);
|
|||
|
|
|||
|
//˵<><CBB5>: <20><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>Bezier<65>ϵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// (dX1,dY1),(dX2,dY2),(dX3,dY3) 2<><32>Bezier<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>
|
|||
|
// dT <20><><EFBFBD><EFBFBD>T
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// point <20><>dT<64><54>Ӧ<EFBFBD>ĵ<EFBFBD>
|
|||
|
CPoint BezierPoint(double dX1, double dY1, double dX2, double dY2, double dX3, double dY3, double dT);
|
|||
|
//<2F><><EFBFBD><EFBFBD>2<EFBFBD><32>Bezier<65><72><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5>е<EFBFBD><D0B5>IJ<EFBFBD><C4B2><EFBFBD>ֵ
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// (dX1,dY1),(dX2,dY2),(dX3,dY3) 2<><32>Bezier<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>
|
|||
|
// pointS,pointE <20><><EFBFBD>߷<EFBFBD><DFB7><EFBFBD>(<28><><EFBFBD>㲻<EFBFBD><E3B2BB><EFBFBD><EFBFBD>ͬ)
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20>е<EFBFBD><D0B5>IJ<EFBFBD><C4B2><EFBFBD>
|
|||
|
double BezierPointParam(double dX1, double dY1, double dX2, double dY2, double dX3, double dY3, CPoint pointS,CPoint pointE);
|
|||
|
|
|||
|
//<2F>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>(<28>ҳ<EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߱ƽ<DFB1>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listSP<53><50><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>.
|
|||
|
// bClose =fasle,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, =true <20>պ<EFBFBD><D5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ʱҪ<CAB1><D2AA><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ͬһ<CDAC><D2BB>).
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(>=0.5)
|
|||
|
// bNatural =true <20><><EFBFBD>ɶ˱߽<CBB1><DFBD><EFBFBD><EFBFBD><EFBFBD>,=false <20><><EFBFBD><EFBFBD><EFBFBD>߽߱<DFB1><DFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// <20><><EFBFBD>ϳɹ<CFB3><C9B9><EFBFBD><EFBFBD><EFBFBD>true,
|
|||
|
// listFitP<74>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵõ<DFB5><C3B5>ıƽ<C4B1><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
// <20>ر<EFBFBD>˵<EFBFBD><CBB5>:<3A>պ<EFBFBD><D5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵıƽ<C4B1><C6BD><EFBFBD><EFBFBD><EFBFBD>listFitP<74><50>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>겻<EFBFBD><EAB2BB>ͬ!!!
|
|||
|
// <20><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL SplineCurve(CList<CPoint,CPoint>& listSP,BOOL bClose,double dMaxError,CList<CPoint,CPoint>& listFitP,BOOL bNatural=true);
|
|||
|
|
|||
|
//<2F>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>(<28>ҳ<EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߱ƽ<DFB1>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listSP<53><50><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>.
|
|||
|
// bClose =fasle,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, =true <20>պ<EFBFBD><D5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ʱҪ<CAB1><D2AA><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ͬһ<CDAC><D2BB>).
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(>=0.5)
|
|||
|
// bTangentH =true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptTangentH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ϵĵ<CFB5>
|
|||
|
// bTangentT =true <20>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptTangentT <20>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ϵĵ<CFB5>
|
|||
|
// bNatural =true <20><><EFBFBD>ɶ˱߽<CBB1><DFBD><EFBFBD><EFBFBD><EFBFBD>,=false <20><><EFBFBD><EFBFBD><EFBFBD>߽߱<DFB1><DFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// <20><><EFBFBD>ϳɹ<CFB3><C9B9><EFBFBD><EFBFBD><EFBFBD>true,
|
|||
|
// listFitP<74>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵõ<DFB5><C3B5>ıƽ<C4B1><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
// <20>ر<EFBFBD>˵<EFBFBD><CBB5>:<3A>պ<EFBFBD><D5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵıƽ<C4B1><C6BD><EFBFBD><EFBFBD><EFBFBD>listFitP<74><50>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>겻<EFBFBD><EAB2BB>ͬ!!!
|
|||
|
// <20><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL SplineCurve(CList<CPoint,CPoint>& listSP,BOOL bClose,double dMaxError,CList<CPoint,CPoint>& listFitP,BOOL bTangentH,CPoint ptTangentH,BOOL bTangentT,CPoint ptTangentT,BOOL bNatural);
|
|||
|
|
|||
|
//<2F>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Bezier<65><72><EFBFBD><EFBFBD><DFBB><EFBFBD><EFBFBD><EFBFBD>(<28>ҳ<EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߱ƽ<DFB1>.
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD>ʱʹ<CAB1><CAB9>Bezier<65><72><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listSP<53><50><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>.
|
|||
|
// bClose =fasle,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, =true <20>պ<EFBFBD><D5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ʱҪ<CAB1><D2AA><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ͬһ<CDAC><D2BB>).
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(>=0.5)
|
|||
|
// bNatural =true <20><><EFBFBD>ɶ˱߽<CBB1><DFBD><EFBFBD><EFBFBD><EFBFBD>,=false <20><><EFBFBD><EFBFBD><EFBFBD>߽߱<DFB1><DFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// <20><><EFBFBD>ϳɹ<CFB3><C9B9><EFBFBD><EFBFBD><EFBFBD>true,
|
|||
|
// listFitP<74>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵõ<DFB5><C3B5>ıƽ<C4B1><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
// <20>ر<EFBFBD>˵<EFBFBD><CBB5>:<3A>պ<EFBFBD><D5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵıƽ<C4B1><C6BD><EFBFBD><EFBFBD><EFBFBD>listFitP<74><50>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>겻<EFBFBD><EAB2BB>ͬ!!!
|
|||
|
// <20><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL CurveFit(CList<CPoint,CPoint>& listSP,BOOL bClose,double dMaxError,CList<CPoint,CPoint>& listFitP,BOOL bNatural=true);
|
|||
|
//<2F>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Bezier<65><72><EFBFBD><EFBFBD><DFBB><EFBFBD><EFBFBD><EFBFBD>(<28>ҳ<EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߱ƽ<DFB1>.
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>ʱʹ<CAB1><CAB9>Bezier<65><72><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listSP<53><50><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>.
|
|||
|
// bClose =fasle,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, =true <20>պ<EFBFBD><D5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ʱҪ<CAB1><D2AA><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ͬһ<CDAC><D2BB>).
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(>=0.5)
|
|||
|
// bTangentH =true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptTangentH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ϵĵ<CFB5>
|
|||
|
// bTangentT =true <20>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptTangentT <20>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ϵĵ<CFB5>
|
|||
|
// bNatural =true <20><><EFBFBD>ɶ˱߽<CBB1><DFBD><EFBFBD><EFBFBD><EFBFBD>,=false <20><><EFBFBD><EFBFBD><EFBFBD>߽߱<DFB1><DFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// <20><><EFBFBD>ϳɹ<CFB3><C9B9><EFBFBD><EFBFBD><EFBFBD>true,
|
|||
|
// listFitP<74>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵõ<DFB5><C3B5>ıƽ<C4B1><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
// <20>ر<EFBFBD>˵<EFBFBD><CBB5>:<3A>պ<EFBFBD><D5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵıƽ<C4B1><C6BD><EFBFBD><EFBFBD><EFBFBD>listFitP<74><50>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>겻<EFBFBD><EAB2BB>ͬ!!!
|
|||
|
// <20><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL CurveFit(CList<CPoint,CPoint>& listSP,BOOL bClose,double dMaxError,CList<CPoint,CPoint>& listFitP,BOOL bTangentH,CPoint ptTangentH,BOOL bTangentT,CPoint ptTangentT,BOOL bNatural);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>NURBS<42><53><EFBFBD>ߵ<EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>(<28>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD>)
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>API<50><49><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listSP <20><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ϵ:<3A>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ,<2C>ֿ<EFBFBD><D6BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ϵ
|
|||
|
// bClose =true <20>պ<EFBFBD>,=false <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listFitP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵõ<DFB5><C3B5>ıƽ<C4B1><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>պ<EFBFBD>,<2C><>ôͷβ<CDB7><CEB2><EFBFBD><EFBFBD><EFBFBD>겻ͬ!!!
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =true <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>,=false <20><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
BOOL CurveFit_NURBS(CList<CPoint,CPoint>& listSP, CList<CPoint,CPoint>& listFitP, BOOL bClose = FALSE);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><F3BFAABF><EFBFBD><EFBFBD>ߵĿ<DFB5><C4BF>Ƶ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listFitPoint ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listCtrlPoint <20><><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>
|
|||
|
BOOL GetControlPointOfOpenCurve(int iDPMM,CList<CRPGrade_Point,CRPGrade_Point> &listFitPoint,double dMaxError,CList<CRPGrade_Point,CRPGrade_Point> &listCtrlPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><F3BFAABF><EFBFBD><EFBFBD>ߵĿ<DFB5><C4BF>Ƶ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listFitPoint ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listCtrlPoint <20><><EFBFBD>еĿ<D0B5><C4BF>Ƶ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listCtrlPoint <20><><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>,listCtrlPoint<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>겻<EFBFBD><EAB2BB>ͬ
|
|||
|
BOOL GetControlPointOfOpenCurve(int iDPMM,CList<CPoint,CPoint> &listFitPoint,double dMaxError,CList<CPoint,CPoint> &listCtrlPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>պ<EFBFBD><D5BA><EFBFBD><EFBFBD>ߵĿ<DFB5><C4BF>Ƶ<EFBFBD>,listFitPoint<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>겻<EFBFBD><EAB2BB>ͬ
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listFitPoint ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listCtrlPoint <20><><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>,listCtrlPoint<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>겻<EFBFBD><EAB2BB>ͬ
|
|||
|
BOOL GetControlPointOfCloseCurve(int iDPMM,CList<CRPGrade_Point,CRPGrade_Point> &listFitPoint,
|
|||
|
double dMaxError,CList<CRPGrade_Point,CRPGrade_Point> &listCtrlPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>պ<EFBFBD><D5BA><EFBFBD><EFBFBD>ߵĿ<DFB5><C4BF>Ƶ<EFBFBD>,listFitPoint<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>겻<EFBFBD><EAB2BB>ͬ
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listFitPoint ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listCtrlPoint <20><><EFBFBD>еĿ<D0B5><C4BF>Ƶ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listCtrlPoint <20><><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>
|
|||
|
BOOL GetControlPointOfCloseCurve(int iDPMM,CList<CPoint,CPoint> &listFitPoint,double dMaxError,CList<CPoint,CPoint> &listCtrlPoint);
|
|||
|
|
|||
|
//<2F>ڵ<EFBFBD><DAB5><EFBFBD>listPointOld<6C>еĵ<D0B5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>listPointNew<65><77><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPointOld <20><><EFBFBD><EFBFBD>
|
|||
|
// listPointNew <20><><EFBFBD><EFBFBD>
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// dMaxDistance <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
CPoint MaxDistancePoint(int iDPMM,CList<CPoint,CPoint> &listPointOld,CList<CPoint,CPoint> &listPointNew,double &dMaxDistance);
|
|||
|
|
|||
|
//<2F>ж϶<D0B6><CFB6><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>β<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolygon <20><><EFBFBD><EFBFBD><EFBFBD>εĵ<CEB5><C4B5><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =true <20><>ʱ<EFBFBD><CAB1>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ),=false ˳ʱ<CBB3><CAB1>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ)
|
|||
|
BOOL IsAnticlockwise(CList<CPoint,CPoint>& listPolygon);
|
|||
|
|
|||
|
//ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>䷴,<2C><>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint1 <20><><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint2
|
|||
|
void Reverse(CList<CPoint,CPoint>& listPoint1,CList<CPoint,CPoint>& listPoint2);
|
|||
|
//ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>䷴,<2C><>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint1 <20><><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint2
|
|||
|
void ReverseT2H(CList<CPoint,CPoint>& listPoint1,CList<CPoint,CPoint>& listPoint2);
|
|||
|
|
|||
|
//<2F><>ת
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint1 <20><><EFBFBD><EFBFBD>ת<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
|
|||
|
// x ˮƽ<CBAE><C6BD>ת<EFBFBD>ĶԳ<C4B6><D4B3><EFBFBD>
|
|||
|
// bHorizontal =true ˮƽ<CBAE><C6BD>ת
|
|||
|
// y <20><>ֱ<EFBFBD><D6B1>ת<EFBFBD>ĶԳ<C4B6><D4B3><EFBFBD>
|
|||
|
// bVertical =true <20><>ֱ<EFBFBD><D6B1>ת
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint2 <20>ѷ<EFBFBD>ת<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
|
|||
|
void Flip(CList<CPoint,CPoint> &listPoint1,int x,BOOL bHorizontal,int y,BOOL bVertical,CList<CPoint,CPoint> &listPoint2);
|
|||
|
//<2F><>ת
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint <20><><EFBFBD><EFBFBD>ת<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
|
|||
|
// x ˮƽ<CBAE><C6BD>ת<EFBFBD>ĶԳ<C4B6><D4B3><EFBFBD>
|
|||
|
// bHorizontal =true ˮƽ<CBAE><C6BD>ת
|
|||
|
// y <20><>ֱ<EFBFBD><D6B1>ת<EFBFBD>ĶԳ<C4B6><D4B3><EFBFBD>
|
|||
|
// bVertical =true <20><>ֱ<EFBFBD><D6B1>ת
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint <20>ѷ<EFBFBD>ת<EFBFBD>ĵ<EFBFBD>
|
|||
|
void Flip(CPoint &ptPoint,int x,BOOL bHorizontal,int y,BOOL bVertical);
|
|||
|
|
|||
|
//<2F><>ptPoint<6E><74>ֱ<EFBFBD><D6B1>ax+by+c=0<>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
double DistanceOfPL(CPoint ptPoint,double a,double b,double c);
|
|||
|
//<2F><>ptPoint<6E><74>ֱ<EFBFBD><D6B1>ptPointL1_ptPointL2<4C>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
double DistanceOfPL(CPoint ptPoint,CPoint ptPointL1,CPoint ptPointL2);
|
|||
|
//<2F><>ptPoint<6E><74><EFBFBD>߶<EFBFBD>ptPointL1_ptPointL2<4C>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
double DistanceOfPLineSegment(CPoint ptPoint,CPoint ptPointL1,CPoint ptPointL2);
|
|||
|
//<2F><>ptPoint<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>listPolyline<6E><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
double DistanceOfPPloyline(CPoint ptPoint,CList<CPoint,CPoint> &listPolyline);
|
|||
|
|
|||
|
//ȥ<><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>ĵ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
void RemoveSamePointOfPolygon(CList<CPoint,CPoint>& listPoint);
|
|||
|
//[20170330 syf]
|
|||
|
void RemoveSamePointOfPolygon(CDBLPointList& listPoint);
|
|||
|
|
|||
|
//ȥ<><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>ĵ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
//<2F><>RemoveSamePointOfPolygon<6F><6E>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5>һ<EFBFBD><D2BB>
|
|||
|
void RemoveSamePointOfPolyline(CList<CPoint,CPoint>& listPoint);
|
|||
|
|
|||
|
//[20170330 syf]
|
|||
|
void RemoveSamePointOfPolyline(CDBLPointList& listPoint);
|
|||
|
|
|||
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><=dMinLength<74>ĵ<EFBFBD>
|
|||
|
void Remove2NearPointOfPolygon(CList<CPoint,CPoint>& listPoint,double dMinLength);
|
|||
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><=dMinLength<74>ĵ<EFBFBD>
|
|||
|
void Remove2NearPointOfPolyline(CList<CPoint,CPoint>& listPoint,double dMinLength);
|
|||
|
|
|||
|
//20160602 XQ ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><=dMinLength<74>ĵ<EFBFBD>
|
|||
|
void RemoveAll2NearPointOfPolyline(CList<CPoint,CPoint>& listPoint,double dMinLength);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δӵ<CEB4>ptPointS˳ʱ<CBB3><CAB1>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ)<29><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>ptPointE<74><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><>ptPointS==ptPointE,<2C><><EFBFBD>Ǵ<EFBFBD>ptPointS<74><53>ptPointE<74><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// ptPointS,ptPointE<74><45>һ<EFBFBD><D2BB><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>εĶ<CEB5><C4B6><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listPolygon <20><><EFBFBD><EFBFBD><EFBFBD>εĵ<CEB5><C4B5><EFBFBD>.
|
|||
|
// ptPointS,ptPointE<74><45><EFBFBD>߶ε<DFB6><CEB5><EFBFBD>ֹ<EFBFBD><D6B9>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline <20><><EFBFBD>ߵĵ<DFB5><C4B5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true <20>ɹ<EFBFBD>,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL PolylineOfPolygon(int iDPMM,CList<CPoint,CPoint>& listPolygon,CPoint ptPointS,CPoint ptPointE,CList<CPoint,CPoint>& listPolyline);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δӵ<CEB4>ptPointS<74>Ⱦ<EFBFBD><C8BE><EFBFBD>ptPointM<74>ٵ<EFBFBD><D9B5><EFBFBD>ptPointE<74><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// ptPointS,ptPointM,ptPointE<74><45>һ<EFBFBD><D2BB><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>εĶ<CEB5><C4B6><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listPolygon <20><><EFBFBD><EFBFBD><EFBFBD>εĵ<CEB5><C4B5><EFBFBD>.
|
|||
|
// ptPointS,ptPointE<74><45><EFBFBD>߶εĶ˵<C4B6>.
|
|||
|
// ptPointM <20>м<EFBFBD><D0BC><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline <20><><EFBFBD>ߵĵ<DFB5><C4B5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true <20>ɹ<EFBFBD>,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL PolylineOfPolygon(int iDPMM,CList<CPoint,CPoint>& listPolygon,CPoint ptPointS,CPoint ptPointM,CPoint ptPointE,CList<CPoint,CPoint>& listPolyline);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δӵ<CEB4>ptPointSǰ<53><C7B0><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>ptPointE<74><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><>ptPointS==ptPointE<74><45><EFBFBD>Ǵ<EFBFBD>ptPointS<74><53>ʼ
|
|||
|
//<2F><>ptPointE<74><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// ptPointS,ptPointE<74><45>һ<EFBFBD><D2BB><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>εĶ<CEB5><C4B6><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listPolygon <20><><EFBFBD><EFBFBD><EFBFBD>εĵ<CEB5><C4B5><EFBFBD>.
|
|||
|
// ptPointS,ptPointE<74><45><EFBFBD>߶ε<DFB6><CEB5><EFBFBD>ֹ<EFBFBD><D6B9>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline <20><><EFBFBD>ߵĵ<DFB5><C4B5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true <20>ɹ<EFBFBD>,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL PrevPolylineOfPolygon(int iDPMM,CList<CPoint,CPoint>& listPolygon,CPoint ptPointS,CPoint ptPointE,CList<CPoint,CPoint>& listPolyline);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δӵ<CEB4>ptPointS<74><53><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>ptPointE<74><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><>ptPointS==ptPointE<74><45><EFBFBD>Ǵ<EFBFBD>ptPointS<74><53>ʼ
|
|||
|
//<2F><>ptPointE<74><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// ptPointS,ptPointE<74><45>һ<EFBFBD><D2BB><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>εĶ<CEB5><C4B6><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listPolygon <20><><EFBFBD><EFBFBD><EFBFBD>εĵ<CEB5><C4B5><EFBFBD>.
|
|||
|
// ptPointS,ptPointE<74><45><EFBFBD>߶ε<DFB6><CEB5><EFBFBD>ֹ<EFBFBD><D6B9>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline <20><><EFBFBD>ߵĵ<DFB5><C4B5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true <20>ɹ<EFBFBD>,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL NextPolylineOfPolygon(int iDPMM,CList<CPoint,CPoint>& listPolygon,CPoint ptPointS,CPoint ptPointE,CList<CPoint,CPoint>& listPolyline);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ߵĵ<DFB5>ptPointS<74><53><EFBFBD><EFBFBD>ptPointE֮<45><D6AE><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// ptPointS,ptPointE<74><45>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĶ<DFB5><C4B6><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listPolyline1 ԭ<><D4AD><EFBFBD>ߵĵ<DFB5><C4B5><EFBFBD>.
|
|||
|
// ptPointS,ptPointE<74><45><EFBFBD>߶ε<DFB6><CEB5><EFBFBD>ֹ<EFBFBD><D6B9>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline2 <20><><EFBFBD><EFBFBD><EFBFBD>ߵĵ<DFB5><C4B5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20>ɹ<EFBFBD>true,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL PolylineOfPolyline(int iDPMM,CList<CPoint,CPoint>& listPolyline1,CPoint ptPointS,CPoint ptPointE,CList<CPoint,CPoint>& listPolyline2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptPointE֮<45><D6AE><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// ptPointE<74><45>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĶ<DFB5><C4B6><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listPolyline1 ԭ<><D4AD><EFBFBD>ߵĵ<DFB5><C4B5><EFBFBD>.
|
|||
|
// ptPointE<74><45><EFBFBD>߶ε<DFB6><CEB5>յ<EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline2 <20><><EFBFBD><EFBFBD><EFBFBD>ߵĵ<DFB5><C4B5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20>ɹ<EFBFBD>true,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL PolylineOfPolylineS(int iDPMM,CList<CPoint,CPoint>& listPolyline1,CPoint ptPointE,CList<CPoint,CPoint>& listPolyline2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ߵĵ<DFB5>ptPointS<74><53><EFBFBD>յ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// ptPointS<74><53>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĶ<DFB5><C4B6><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listPolyline1 ԭ<><D4AD><EFBFBD>ߵĵ<DFB5><C4B5><EFBFBD>.
|
|||
|
// ptPointE<74><45><EFBFBD>߶ε<DFB6><CEB5>յ<EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline2 <20><><EFBFBD><EFBFBD><EFBFBD>ߵĵ<DFB5><C4B5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20>ɹ<EFBFBD>true,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL PolylineOfPolylineE(int iDPMM,CList<CPoint,CPoint>& listPolyline1,CPoint ptPointS,CList<CPoint,CPoint>& listPolyline2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ߵĴӵ<C4B4>ptPointS<74><53>ʼ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptPointM<74><4D><EFBFBD>˵<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>)֮<><D6AE><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// ptPointS,ptPointM<74><4D>һ<EFBFBD><D2BB><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>εĶ<CEB5><C4B6><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listPolyline1 ԭ<><D4AD><EFBFBD>ߵĵ<DFB5><C4B5><EFBFBD>.
|
|||
|
// ptPointS,ptPointM<74><4D><EFBFBD>߶ε<DFB6><CEB5><EFBFBD>ֹ<EFBFBD><D6B9>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline2 <20><><EFBFBD><EFBFBD><EFBFBD>ߵĵ<DFB5><C4B5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20>ɹ<EFBFBD>true,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL PolylineOfPolylineSM(int iDPMM,CPoint ptPointS,CPoint ptPointM,CList<CPoint,CPoint>& listPolyline1,CList<CPoint,CPoint>& listPolyline2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD><CEBE><EFBFBD>ptArcPointS,ptArcPointM,ptArcPointE<74><45>Բ<EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>α<EFBFBD>ʾ
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptCirclePointS,ptCirclePointM,ptCirclePointE Բ<><D4B2><EFBFBD>ξ<EFBFBD><CEBE><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolygon <20><><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20>ɹ<EFBFBD>true,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL PolygonOfCircle(CPoint ptCirclePointS,CPoint ptCirclePointM,CPoint ptCirclePointE,CList<CPoint,CPoint>& listPolygon,double dMaxError=0.5);
|
|||
|
|
|||
|
//[20170330 syf]
|
|||
|
BOOL PolygonOfCircle(CDBLPoint ptCirclePointS,CDBLPoint ptCirclePointM,CDBLPoint ptCirclePointE,CDBLPointList& listPolygon,double dMaxError=0.5);
|
|||
|
|
|||
|
//<2F><>Բ<EFBFBD><D4B2>ʱ<EFBFBD>뷽<EFBFBD><EBB7BD>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>α<EFBFBD>ʾ.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptCenter Բ<><D4B2>
|
|||
|
// ptCirclePointS Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolygon <20><><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20>ɹ<EFBFBD>true,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL PolygonOfCircle(CPoint ptCenter,CPoint ptCirclePointS,CList<CPoint,CPoint>& listPolygon,double dMaxError=0.5);
|
|||
|
|
|||
|
//[20170330 syf]
|
|||
|
BOOL PolygonOfCircle(CDBLPoint ptCenter,CDBLPoint ptCirclePointS,CDBLPointList& listPolygon,double dMaxError=0.5);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD><CEBE><EFBFBD>ptArcPointS,ptArcPointM,ptArcPointE<74>Ļ<EFBFBD><C4BB>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD>߱<EFBFBD>ʾ.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptArcPointS,ptArcPointM,ptArcPointE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD><CEBE><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline <20><><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20>ɹ<EFBFBD>true,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL PolylineOfArc(CPoint ptArcPointS,CPoint ptArcPointM,CPoint ptArcPointE,CList<CPoint,CPoint>& listPolyline,double dMaxError=0.5);
|
|||
|
|
|||
|
//[20170330 syf]
|
|||
|
BOOL PolylineOfArc(CDBLPoint ptArcPointS,CDBLPoint ptArcPointM,CDBLPoint ptArcPointE,CDBLPointList& listPolyline,double dMaxError=0.5);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD>߱<EFBFBD>ʾ.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptCenter Բ<><D4B2>
|
|||
|
// ptArcPointS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// dAngle <20><><EFBFBD>νǶ<CEBD>,>=0 <20><>ʱ<EFBFBD><CAB1>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ),<0 ˳ʱ<CBB3><CAB1>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ),<2C><>λ:<3A><><EFBFBD><EFBFBD>
|
|||
|
// dMaxError <20><><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline <20><><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20>ɹ<EFBFBD>true,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL PolylineOfArc(CPoint ptCenter,CPoint ptArcPointS,double dAngle,CList<CPoint,CPoint>& listPolyline,double dMaxError=0.5);
|
|||
|
|
|||
|
//[20170330 syf]
|
|||
|
BOOL PolylineOfArc(CDBLPoint ptCenter,CDBLPoint ptArcPointS,double dAngle,CDBLPointList& listPolyline,double dMaxError=0.5);
|
|||
|
|
|||
|
//<2F>ж<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƿ<EFBFBD><C7B7>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// point <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// lpPoints[0]...lpPoints[nCount-1] <20><><EFBFBD><EFBFBD><EFBFBD>εĶ<CEB5><C4B6><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =true <20><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// =false <20>㲻<EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
BOOL PointInPolygon(POINT point,LPPOINT lpPoints,int nCount);
|
|||
|
|
|||
|
//<2F>ж<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƿ<EFBFBD><C7B7>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// point <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPolygon <20><><EFBFBD><EFBFBD><EFBFBD>εĵ<CEB5><C4B5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =true <20><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// =false <20>㲻<EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
BOOL PointInPolygon(POINT point,CList<CPoint,CPoint>& listPolygon);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>P1P2<50><32><EFBFBD><EFBFBD>nD<6E><44>ƽ<EFBFBD><C6BD>ֱ<EFBFBD>ߵķ<DFB5><C4B7><EFBFBD>,ֱ<><D6B1><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>P1P2<50><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ)
|
|||
|
//<2F><>Ҫ˵<D2AA><CBB5>:
|
|||
|
// <20>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>,Y<><59><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>P1P2<50><32><EFBFBD>Ҳ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// (nX1,nY1),(nX2,nY2) ֱ<><D6B1>P1P2<50><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// nD <20><><EFBFBD><EFBFBD>ֱ<EFBFBD>ߺ<DFBA><CDB8><EFBFBD>ֱ<EFBFBD><D6B1>P1P2<50>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// <20><>(nX1,nY1),(nX2,nY2)<29><><EFBFBD><EFBFBD>ͬһ<CDAC><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>true, a,b,c <20><><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ֱ<EFBFBD><D6B1>:ax+b*y+c=0;
|
|||
|
// <20><>(nX1,nY1),(nX2,nY2)<29><>ͬһ<CDAC><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>fasle.
|
|||
|
BOOL LineParallel(int nX1,int nY1,int nX2,int nY2,int nD,double& a,double& b,double& c);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>P1P2<50><32><EFBFBD><EFBFBD>nD<6E><44>ƽ<EFBFBD><C6BD>ֱ<EFBFBD>ߵķ<DFB5><C4B7><EFBFBD>,ֱ<><D6B1><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>P1P2<50><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ)
|
|||
|
//<2F><>Ҫ˵<D2AA><CBB5>:
|
|||
|
// <20>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>,Y<><59><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>P1P2<50><32><EFBFBD>Ҳ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint1,ptPoint2 ֱ<><D6B1>P1P2<50><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// nD <20><><EFBFBD><EFBFBD>ֱ<EFBFBD>ߺ<DFBA><CDB8><EFBFBD>ֱ<EFBFBD><D6B1>P1P2<50>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// <20><>ptPoint1,ptPoint2<74><32><EFBFBD><EFBFBD>ͬһ<CDAC><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>true, a,b,c <20><><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ֱ<EFBFBD><D6B1>:ax+b*y+c=0
|
|||
|
// <20><>ptPoint1,ptPoint2<74><32>ͬһ<CDAC><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>fasle.
|
|||
|
BOOL LineParallel(CPoint ptPoint1,CPoint ptPoint2,int nD,double& a,double& b,double& c);
|
|||
|
|
|||
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı߽<C4B1><DFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
CRect GetRectOfListPoint(CList<CPoint,CPoint>& listPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD>Լ<EFBFBD><D4BC>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// nNum1,nNum2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// nNum1,nNum2<6D>Ĺ<EFBFBD>Լ<EFBFBD><D4BC>(<28><>nNum1,nNum2<6D><32><EFBFBD><EFBFBD>0ʱ<30><CAB1><EFBFBD><EFBFBD>1)
|
|||
|
int CommomDivisor(int nNum1,int nNum2);
|
|||
|
|
|||
|
//<2F>ж<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint
|
|||
|
// ptPointS
|
|||
|
// ptPointE
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><>ptPoint<6E><74>ptPointS_ptPointE֮<45>䷵<EFBFBD><E4B7B5>true,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL BetweenTwoPoint(CPoint ptPoint,CPoint ptPointS,CPoint ptPointE);
|
|||
|
|
|||
|
//<2F>ж<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// ptPoint
|
|||
|
// ptPointS
|
|||
|
// ptPointE
|
|||
|
// listPolyline1
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline2 ptPointS_ptPointE֮<45><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><>ptPoint<6E><74><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ptPointS_ptPointE֮<45>䷵<EFBFBD><E4B7B5>true,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL BetweenTwoPointAtPolyline(int iDPMM,CPoint ptPoint,CPoint ptPointS,CPoint ptPointE,CList<CPoint,CPoint> &listPolyline1,CList<CPoint,CPoint> &listPolyline2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// ptPointS,ptPointE <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
|
|||
|
int Get2PLengthOfPolyline(int iDPMM,CPoint ptPointS,CPoint ptPointE,CList<CPoint,CPoint> &listPolyline);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ߵij<DFB5><C4B3><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>
|
|||
|
int GetLengthOfPolyline(CList<CPoint,CPoint> &listPolyline);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ߵij<DFB5><C4B3><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// dLength <20><><EFBFBD>߳<EFBFBD><DFB3>ȵ<EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD>ֵ
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>
|
|||
|
int GetLengthOfPolyline(CList<CPoint,CPoint> &listPolyline,double &dLength);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>εij<CEB5><C4B3><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolygon <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD><CEB3><EFBFBD>
|
|||
|
int GetLengthOfPolygon(CList<CPoint,CPoint> &listPolygon);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>εij<CEB5><C4B3><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolygon <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// dLength <20><><EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD><CEB3>ȵ<EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD>ֵ
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD><CEB3><EFBFBD>
|
|||
|
int GetLengthOfPolygon(CList<CPoint,CPoint> &listPolygon,double &dLength);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
int TwoPointLength(CPoint ptPoint1,CPoint ptPoint2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// dLength <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD>ֵ
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
int TwoPointLength(CPoint ptPoint1,CPoint ptPoint2,double &dLength);
|
|||
|
|
|||
|
//<2F>ж<EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// 1:1<><31><EFBFBD><EFBFBD>,2:2<><32><EFBFBD><EFBFBD>,3:3<><33><EFBFBD><EFBFBD>,4:4<><34><EFBFBD><EFBFBD>
|
|||
|
int GetQuadrant(int x,int y);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>߽ضϵIJ<CFB5><C4B2><EFBFBD>ȥ<EFBFBD><C8A5>
|
|||
|
//<2F>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߺ<EFBFBD><DFBA>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listPolygon <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolygon <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true <20>ɹ<EFBFBD>,<2C><><EFBFBD><EFBFBD>false.
|
|||
|
BOOL PolygonRemovePolyline(int iDPMM,CList<CPoint,CPoint> &listPolygon,CList<CPoint,CPoint> &listPolyline);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>listPoint<6E><74><EFBFBD><EFBFBD>ptPointS_ptPointEͬ<45><CDAC>(<28><>ptPointS<74><53>ptPointE),<2C>Ҿ<EFBFBD><D2BE><EFBFBD>ptPointE<74><45><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ptPoint
|
|||
|
BOOL GetEquidireectionalPoint(CPoint ptPointS,CPoint ptPointE,CList<CPoint,CPoint> &listPoint,CPoint &ptPoint);
|
|||
|
|
|||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>(ptPoint1,ptPoint2)<29>Ƿ<EFBFBD><C7B7><EFBFBD>ֱ<EFBFBD><D6B1>ptPointLS_ptPointLE<4C><45>ͬ<EFBFBD><CDAC>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint1,ptPoint2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPointLS,ptPointLE ֱ<>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true ͬ<><CDAC>,false <20><><EFBFBD><EFBFBD>
|
|||
|
BOOL IsSameSide(CPoint ptPoint1,CPoint ptPoint2,CPoint ptPointLS,CPoint ptPointLE);
|
|||
|
|
|||
|
//<2F>жϵ<D0B6><CFB5><EFBFBD>listPoint<6E>Ƿ<EFBFBD><C7B7><EFBFBD>ֱ<EFBFBD><D6B1>ptPointLS_ptPointLE<4C><45>ͬ<EFBFBD><CDAC>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// listPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPointLS,ptPointLE ֱ<>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true ͬ<><CDAC>,false <20><><EFBFBD><EFBFBD>
|
|||
|
BOOL IsSameSide(CList<CPoint,CPoint> &listPoint,CPoint ptPointLS,CPoint ptPointLE);
|
|||
|
|
|||
|
//<2F>ж<EFBFBD>ƽ<EFBFBD>е<EFBFBD>ֱ<EFBFBD><D6B1>ptPoint1_ptPoint2<74><32>ptPoint3_ptPoint4,
|
|||
|
//<2F><>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptPoint1<74><31>ptPoint2<74><32>ptPoint3<74><33>ptPoint4<74>Ƿ<EFBFBD><C7B7><EFBFBD>ͬ.
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:<3A><>2009<30><39>11<31><31>11<31><31>ǰҪ<C7B0><D2AA>ptPoint1_ptPoint2<74><32>ptPoint3_ptPoint4<74><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>.֮<><D6AE><EFBFBD>ij<EFBFBD>ʸ<EFBFBD><CAB8>ptPoint1<74><31>ptPoint2<74><32>ptPoint3<74><33>ptPoint4<74>ļнDz<D0BD><C7B2><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ָ<EFBFBD><D6B8><EFBFBD>Ƕ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint1
|
|||
|
// ptPoint2
|
|||
|
// ptPoint3
|
|||
|
// ptPoint4
|
|||
|
// dCosMaxAngle <20>ж<EFBFBD>ʸ<EFBFBD><CAB8>ptPoint1<74><31>ptPoint2<74><32>ptPoint3<74><33>ptPoint4ͬ<34><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD>,(ԭ<><D4AD>Ĭ<EFBFBD><C4AC>ֵΪ1<CEAA>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD>,20130827֮<37><D6AE>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ)
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true <20><>ͬ,false <20>෴.
|
|||
|
BOOL IsSameDirection(CPoint ptPoint1,CPoint ptPoint2,CPoint ptPoint3,CPoint ptPoint4,double dCosMaxAngle);
|
|||
|
|
|||
|
//[20130827]<5D>ָ<EFBFBD>20091111֮ǰ<D6AE>ĺ<EFBFBD><C4BA><EFBFBD>
|
|||
|
// <20><>Ϊ<EFBFBD>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>ƽ<EFBFBD>е<EFBFBD>,ֻ<><D6BB>Ҫ<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ǵķ<C7B5><C4B7><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ͬ,<2C><><EFBFBD><EFBFBD>ʹ<EFBFBD>ýǶ<C3BD><C7B6>ж<EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB8>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD>е<EFBFBD><<S134211K00.dgs>><3E>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>м<EFBFBD><D0BC><EFBFBD>101<30>汾<EFBFBD><E6B1BE><EFBFBD><EFBFBD>ʱ,<2C><><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʹ<EFBFBD>øú<C3B8><C3BA><EFBFBD><EFBFBD>ж<EFBFBD>ʱ(Ĭ<><C4AC><EFBFBD><EFBFBD>1<EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD>ֵ)<29>ж<EFBFBD>ʧ<EFBFBD><CAA7>,<2C><>Ϊ<EFBFBD>Ƕ<EFBFBD>=1.83<EFBFBD><EFBFBD>
|
|||
|
BOOL IsSameDirection(CPoint ptPoint1,CPoint ptPoint2,CPoint ptPoint3,CPoint ptPoint4);
|
|||
|
|
|||
|
//<2F>жϵ<D0B6>ptPoint<6E>Ƿ<EFBFBD><C7B7>ھ<EFBFBD><DABE><EFBFBD>(ptPoint1,ptPoint2)<29><>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPoint1,ptPoint2 <20><><EFBFBD>ζԽ<CEB6><D4BD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true <20>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD>,false <20><><EFBFBD>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
BOOL PointInRect(CPoint ptPoint,CPoint ptPoint1,CPoint ptPoint2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>0<EFBFBD><30>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5>
|
|||
|
void TrimAfterDot0(CString &strNum);
|
|||
|
//<2F><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD>ַ<EFBFBD>ǰ<EFBFBD>Ļس<C4BB><D8B3><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5>
|
|||
|
CString TrimHeadCRLF(CString string);
|
|||
|
//<2F><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ļس<C4BB><D8B3><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5>
|
|||
|
CString TrimTailCRLF(CString string);
|
|||
|
|
|||
|
//<2F>ж<EFBFBD>ptPoint<6E>Ƿ<EFBFBD><C7B7><EFBFBD>ʸ<EFBFBD><CAB8>ptPointS<74><53>ptPointE<74><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>ptPointS<74><53>ptPointE<74><45>,=false <20><><EFBFBD>ұ<EFBFBD>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
BOOL IsLeftPoint(CPoint ptPoint,CPoint ptPointS,CPoint ptPointE);
|
|||
|
//<2F>ж<EFBFBD>ptPoint<6E>Ƿ<EFBFBD><C7B7>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD>(ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD>㵽<EFBFBD>յ<EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,=false <20><><EFBFBD>ұ<EFBFBD>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
BOOL IsLeftPoint(CPoint ptPoint,CList<CPoint,CPoint> &listPolyline);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint1
|
|||
|
// ptPoint2
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
CRect RectOfContainTowPoint(CPoint ptPoint1,CPoint ptPoint2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
CRect RectOfPolyline(CList<CPoint,CPoint> &listPolyline);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>,Բ<><D4B2><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ʱ<EFBFBD>뷽<EFBFBD><EBB7BD>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>X<EFBFBD><58><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>,Y<><59><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>,<2C><><EFBFBD><EFBFBD>˳ʱ<CBB3>뷽<EFBFBD><EBB7BD>)<29><><EFBFBD><EFBFBD><EFBFBD>㵽<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptLeftUp,ptRightDown Բ<><D4B2><EFBFBD><EFBFBD><DEB6><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD>ϽǺ<CFBD><C7BA><EFBFBD><EFBFBD>½<EFBFBD>(<28><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
// ptPointS,ptPointE Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
CRect RectOfContainArc(CPoint ptLeftUp,CPoint ptRightDown,CPoint ptPointS,CPoint ptPointE);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
CSize StringSize(LOGFONT lfFont,CString string);
|
|||
|
//<2F><><EFBFBD><EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
CSize StringSize(CDC *pDC,CString string);
|
|||
|
//<2F><><EFBFBD><EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
CSize StringSize(CDC *pDC,CString string,int &nLines);
|
|||
|
//<2F><><EFBFBD><EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// lfFont <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// string <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptLU <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
// dScale <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ߶ȡ<DFB6><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>,<2C><>Ҫ<EFBFBD><D2AA>Ϊ<EFBFBD>˷<EFBFBD>ֹ<EFBFBD>߶ȡ<DFB6><C8A1><EFBFBD><EFBFBD>ȵ<EFBFBD>ֵ̫<D6B5><CCAB><EFBFBD><EFBFBD><EFBFBD>㳬<EFBFBD><E3B3AC>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptLD <20><><EFBFBD>½<EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
// ptRU <20><><EFBFBD>Ͻ<EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
// ptRD <20><><EFBFBD>½<EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD><EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
CSize StringRgnLU(LOGFONT lfFont,CString string,CPoint &ptLU,CPoint &ptLD,CPoint &ptRU,CPoint &ptRD,double dScale=1.0);
|
|||
|
//<2F><><EFBFBD><EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// lfFont <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// string <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptLD <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
// dScale <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ߶ȡ<DFB6><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>,<2C><>Ҫ<EFBFBD><D2AA>Ϊ<EFBFBD>˷<EFBFBD>ֹ<EFBFBD>߶ȡ<DFB6><C8A1><EFBFBD><EFBFBD>ȵ<EFBFBD>ֵ̫<D6B5><CCAB><EFBFBD><EFBFBD><EFBFBD>㳬<EFBFBD><E3B3AC>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptLU <20><><EFBFBD>Ͻ<EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
// ptRU <20><><EFBFBD>Ͻ<EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
// ptRD <20><><EFBFBD>½<EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD><EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
CSize StringRgnLD(LOGFONT lfFont,CString string,CPoint &ptLU,CPoint &ptLD,CPoint &ptRU,CPoint &ptRD,double dScale=1.0);
|
|||
|
//<2F><>ȡstring<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int StringLines(CString string);
|
|||
|
//<2F><>ȡstring<6E><67>nLineIndex<65>е<EFBFBD><D0B5>ַ<EFBFBD>(<28><>ʼ<EFBFBD>е<EFBFBD>nLineIndexΪ0)
|
|||
|
CString GetSubString(CString string,int nLineIndex);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPolygon <20><><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD>
|
|||
|
double AreaOfPloygon(CList<CPoint,CPoint> &listPolygon);
|
|||
|
|
|||
|
//<2F>ж<EFBFBD><D0B6>߶κ;<CEBA><CDBE><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ཻ
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// rect <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPointS_ptPointE <20><><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPointS,ptPointE <20><>ȡ<EFBFBD><C8A1><EFBFBD>߶<EFBFBD>(ptPointS_ptPointE)
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true <20>߶κ;<CEBA><CDBE><EFBFBD><EFBFBD>ཻ, false <20>߶κ;<CEBA><CDBE>β<EFBFBD><CEB2>ཻ.
|
|||
|
BOOL IntersectLineRect(CRect rect,CPoint &ptPointS,CPoint &ptPointE);
|
|||
|
|
|||
|
//<2F>ж<EFBFBD><D0B6>߶κ;<CEBA><CDBE><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ཻ
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// rect <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptPointS_ptPointE <20><><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPointS,ptPointE <20><>ȡ<EFBFBD><C8A1><EFBFBD>߶<EFBFBD>(ptPointS_ptPointE)
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true <20>߶κ;<CEBA><CDBE><EFBFBD><EFBFBD>ཻ, false <20>߶κ;<CEBA><CDBE>β<EFBFBD><CEB2>ཻ.
|
|||
|
BOOL IntersectLineRect(CRect rect,int &nXS,int &nYS,int &nXE,int &nYE);
|
|||
|
|
|||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ߺ;<DFBA><CDBE><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ཻ
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// rect <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true <20><><EFBFBD>ߺ;<DFBA><CDBE><EFBFBD><EFBFBD>ཻ, false <20><><EFBFBD>ߺ;<DFBA><CDBE>β<EFBFBD><CEB2>ཻ.
|
|||
|
BOOL IntersectPolylineRect(CList<CPoint,CPoint> &listPolyline,CPoint ptPointS,CPoint ptPointE);
|
|||
|
|
|||
|
//<2F>жϾ<D0B6><CFBE><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Կ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// rect <20><>ѡ<EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
// listPolyline <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true <20><><EFBFBD>Կ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// false <20><><EFBFBD>ο<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
BOOL IntersectPolylineRect(CRect rect,CList<CPoint,CPoint> &listPolyline);
|
|||
|
|
|||
|
//<2F>ڵ<EFBFBD><DAB5><EFBFBD>listPoint<6E><74>,<2C><>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>ж<EFBFBD>ptPoint1<74><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ptPoint2<74><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>(<28><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ǰ<EFBFBD><C7B0>)
|
|||
|
//ע<><D7A2>:<3A><>ptPoint1,ptPoint2<74><32><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>뵽<EFBFBD><EBB5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listPoint
|
|||
|
// ptPoint1
|
|||
|
// ptPoint2
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true ptPoint1<74><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptPoint2<74><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>,
|
|||
|
// false ptPoint1<74><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptPoint2<74><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>.
|
|||
|
BOOL IsPrevPoint(int iDPMM,CList<CPoint,CPoint> &listPoint,CPoint ptPoint1,CPoint ptPoint2);
|
|||
|
|
|||
|
//20140504 XQ <20><>ptPointOԭ<4F><D4AD>,<2C><>ptExtend<6E><64><EFBFBD><EFBFBD>ptExtendToPointʱ,<2C><>ptPointOld<6C><64>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptPointNew
|
|||
|
//<2F>ú<EFBFBD><C3BA><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD>Ҹߺ<D2B8><DFBA>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void Extend(CPoint ptPointO,CPoint ptExtend,CPoint ptExtendToPoint,CPoint ptPointOld, CPoint &ptPointNew);
|
|||
|
|
|||
|
//<2F><>ptPointOԭ<4F><D4AD>,<2C><>ptExtend<6E><64><EFBFBD><EFBFBD>ptExtendToPointʱ,<2C><>listPointOld<6C><64>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>listPointNew
|
|||
|
//<2F>ú<EFBFBD><C3BA><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD>Ҹߺ<D2B8><DFBA>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void Extend(CPoint ptPointO,CPoint ptExtend,CPoint ptExtendToPoint,CList<CPoint,CPoint> &listPointOld,CList<CPoint,CPoint> &listPointNew);
|
|||
|
//<2F><>ptPointOԭ<4F><D4AD>,<2C><>ptExtend<6E><64><EFBFBD><EFBFBD>ptExtendToPointʱ,<2C><>listPointOld<6C><64>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>listPointNew
|
|||
|
//<2F>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void ExtendInWidth(CPoint ptPointO,CPoint ptExtend,CPoint ptExtendToPoint,CList<CPoint,CPoint> &listPointOld,CList<CPoint,CPoint> &listPointNew);
|
|||
|
|
|||
|
//<2F><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>listPoint<6E><74><EFBFBD><EFBFBD>ptPoint<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|||
|
CPoint NearestPoint(CPoint ptPoint,CList<CPoint,CPoint> &listPoint,int &nDistance);
|
|||
|
|
|||
|
//<2F><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>listPoint1<74>ĵ<EFBFBD><C4B5><EFBFBD>listPoint2<74>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint1
|
|||
|
// listPoint2
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint1 <20>õ<EFBFBD><C3B5><EFBFBD>listPoint1<74><31>
|
|||
|
// ptPoint2 <20>õ<EFBFBD><C3B5><EFBFBD>listPoint2<74><32>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// ptPoint1<74><31>ptPoint2<74>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
int NearestPoint(CList<CPoint,CPoint> &listPoint1,CList<CPoint,CPoint> &listPoint2,CPoint &ptPoint1,CPoint &ptPoint2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ijһ<C4B3><D2BB><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ax+by+c=0
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listPolyline
|
|||
|
// ptPoint
|
|||
|
// dMinLength ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD>̾<EFBFBD><CCBE><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// a,b,c ֱ<>߷<EFBFBD><DFB7><EFBFBD>
|
|||
|
BOOL VerticalLineOfPloyline(int iDPMM,CList<CPoint,CPoint> &listPolyline,CPoint ptPoint,double dMinLength,double &a,double &b,double &c);
|
|||
|
BOOL VerticalLineOfPloygon(int iDPMM,CList<CPoint,CPoint> &listPolygon,CPoint ptPoint,double dMinLength,double &a,double &b,double &c);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ijһ<C4B3><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ax+by+c=0
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
BOOL TangentOfPloyline(int iDPMM,CList<CPoint,CPoint> &listPolyline,CPoint ptPoint,double dMinLength,double &a,double &b,double &c);
|
|||
|
BOOL TangentOfPloygon(int iDPMM,CList<CPoint,CPoint> &listPolyline,CPoint ptPoint,double dMinLength,double &a,double &b,double &c);
|
|||
|
|
|||
|
//<2F>и<EFBFBD>ʱ<EFBFBD>Ծ<EFBFBD><D4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listRectOld û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
// nDistance <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listRectNew <20>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
void CuttingSort(CList<CRect,CRect> &listRectOld,int nDistance,CList<CRect,CRect> &listRectNew);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD>γɵ<CEB3><C9B5>¾<EFBFBD><C2BE><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>
|
|||
|
// nLeft,nTop,nRight,nBottom <20>ɵľ<C9B5><C4BE><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// nLeft,nTop,nRight,nBottom <20>µľ<C2B5><C4BE><EFBFBD>
|
|||
|
void GetNewRect(CPoint ptPoint,int &nLeft,int &nTop,int &nRight,int &nBottom);
|
|||
|
|
|||
|
//<2F>жϵ<D0B6><CFB5><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>һֱ<D2BB><D6B1><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint <20><><EFBFBD><EFBFBD>
|
|||
|
// dMaxError <20>߶<EFBFBD><DFB6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true <20><>һ<EFBFBD><D2BB>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>
|
|||
|
BOOL AllPointAtLine(CList<CPoint,CPoint> &listPoint,double dMaxError);
|
|||
|
|
|||
|
//<2F><>ˮƽ<CBAE><C6BD>ֱ<EFBFBD><D6B1>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ptPointS_ptPointE<74><45>ˮƽ<CBAE><C6BD>ֱ<EFBFBD>ߵĽǶ<C4BD>С<EFBFBD><D0A1>dMaxAngle,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptPointE<74><45>ˮƽ<CBAE><C6BD>ֱ<EFBFBD><D6B1><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptPointHV
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPointS,ptPointE ֱ<>ߵ<EFBFBD>
|
|||
|
// dMaxAngle <20><><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD><EFBFBD>,<2C><>λ:<3A><>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// ptPointHV
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// true <20>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD>ĽǶ<C4BD><C7B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮƽ<CBAE><C6BD>ֱ<EFBFBD><D6B1>
|
|||
|
BOOL HVLine(CPoint ptPointS,CPoint ptPointE,double dMaxAngle,CPoint &ptPointHV);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĿ<DFB5><C4BF>Ƶ<EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM [<5B><><EFBFBD><EFBFBD>]<5D><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listPoint
|
|||
|
// <20><><EFBFBD><EFBFBD>
|
|||
|
// listCtrl
|
|||
|
// [<5B><><EFBFBD><EFBFBD>][<5B><><EFBFBD><EFBFBD>]<5D><><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>ɹ<EFBFBD>,<2C><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD>ʹ<EFBFBD>øò<C3B8><C3B2><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|||
|
// dSplineError
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// dMaxError
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (bHeadTangent,ptHeadTangent)
|
|||
|
// bHeadTangent=TRUE,<2C><>ǰ<EFBFBD><C7B0><EFBFBD>ߵ<EFBFBD>,<2C><>ʱptHeadTangent<6E><74>Ч;bHeadTangent=FALSE,û<><C3BB>ǰ<EFBFBD><C7B0><EFBFBD>ߵ<EFBFBD>,<2C><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ptHeadTangent<6E><74>ֵ
|
|||
|
// (bTailTangent,ptTailTangent)
|
|||
|
// bTailTangent=TRUE,<2C>к<EFBFBD><D0BA><EFBFBD><EFBFBD>ߵ<EFBFBD>,<2C><>ʱptTailTangent<6E><74>Ч;bTailTangent=FALSE,û<>к<EFBFBD><D0BA><EFBFBD><EFBFBD>ߵ<EFBFBD>,<2C><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ptTailTangent<6E><74>ֵ
|
|||
|
// bNatrual
|
|||
|
// =TRUE,<2C><>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD>;=FALSE,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,20170406 syf,<2C><>Ĭ<EFBFBD><C4AC>ֵ<EFBFBD><D6B5>Ϊtrue
|
|||
|
// bExactSolution
|
|||
|
// =TRUE,<2C><><EFBFBD>⾫ȷ<E2BEAB><C8B7>;=FALSE,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⾫ȷ<E2BEAB><C8B7>,<2C><>ô<EFBFBD><C3B4><EFBFBD>ԷŴ<D4B7><C5B4><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|||
|
BOOL CalculateSplineCtrlPoint(int iDPMM,CList<CPoint,CPoint>& listPoint, CList<CPoint,CPoint>& listCtrl, double dSplineError, double dMaxError,
|
|||
|
BOOL bHeadTangent = FALSE,CPoint ptHeadTangent = CPoint(0,0),BOOL bTailTangent = FALSE,
|
|||
|
CPoint ptTailTangent = CPoint(0,0),BOOL bNatrual = TRUE, BOOL bExactSolution = TRUE);
|
|||
|
|
|||
|
//<2F><>ÿһ<C3BF>εȷַ<C8B7><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĿ<DFB5><C4BF>Ƶ<EFBFBD>(segment divide)
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// listPoint
|
|||
|
// <20><><EFBFBD><EFBFBD>
|
|||
|
// listCtrl
|
|||
|
// [<5B><><EFBFBD><EFBFBD>][<5B><><EFBFBD><EFBFBD>]<5D><><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>ɹ<EFBFBD>,<2C><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD>ʹ<EFBFBD>øò<C3B8><C3B2><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|||
|
// dSplineError
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// dMaxError
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// (bHeadTangent,ptHeadTangent)
|
|||
|
// bHeadTangent=TRUE,<2C><>ǰ<EFBFBD><C7B0><EFBFBD>ߵ<EFBFBD>,<2C><>ʱptHeadTangent<6E><74>Ч;bHeadTangent=FALSE,û<><C3BB>ǰ<EFBFBD><C7B0><EFBFBD>ߵ<EFBFBD>,<2C><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ptHeadTangent<6E><74>ֵ
|
|||
|
// (bTailTangent,ptTailTangent)
|
|||
|
// bTailTangent=TRUE,<2C>к<EFBFBD><D0BA><EFBFBD><EFBFBD>ߵ<EFBFBD>,<2C><>ʱptTailTangent<6E><74>Ч;bTailTangent=FALSE,û<>к<EFBFBD><D0BA><EFBFBD><EFBFBD>ߵ<EFBFBD>,<2C><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ptTailTangent<6E><74>ֵ
|
|||
|
// bNatrual
|
|||
|
// =TRUE,<2C><>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD>;=FALSE,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,20170406 syf,<2C><>Ĭ<EFBFBD><C4AC>ֵ<EFBFBD><D6B5>Ϊtrue
|
|||
|
// bExactSolution
|
|||
|
// =TRUE,<2C><><EFBFBD>⾫ȷ<E2BEAB><C8B7>;=FALSE,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⾫ȷ<E2BEAB><C8B7>,<2C><>ô<EFBFBD><C3B4><EFBFBD>ԷŴ<D4B7><C5B4><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|||
|
// dMaxCtrlPointDistance
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
BOOL CalculateSplineCtrlPoint_SD(CList<CPoint,CPoint>& listPoint, CList<CPoint,CPoint>& listCtrl, double dSplineError, double dMaxError, double dMaxCtrlPointDistance,
|
|||
|
BOOL bHeadTangent = FALSE,CPoint ptHeadTangent = CPoint(0,0),BOOL bTailTangent = FALSE,
|
|||
|
CPoint ptTailTangent = CPoint(0,0),BOOL bNatrual = TRUE, BOOL bExactSolution = TRUE);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
|||
|
double DistanceOfTwoList(CList<CPoint,CPoint>& listPoint1, CList<CPoint,CPoint>& listPoint2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>.
|
|||
|
double DistanceFromListToList(CList<CPoint,CPoint>& listPoint1, CList<CPoint,CPoint>& listPoint2);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>㵽һ<E3B5BD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>.
|
|||
|
double DistanceFromPointToList(CPoint point, CList<CPoint,CPoint>& listPoint);
|
|||
|
double DistanceFromPointToList(CPoint point, CPoint* pt, int nArray);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ptInt<6E><74><EFBFBD>߶<EFBFBD>ptS<74><53>ptE<74>ϵIJ<CFB5><C4B2><EFBFBD>ֵ
|
|||
|
double PointToParam(CPoint& ptInt, CPoint& ptS, CPoint& ptE);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD>㵽һ<E3B5BD><D2BB><EFBFBD>߶εĴ<CEB5><C4B4><EFBFBD>.
|
|||
|
void GetVerticalPoint(CPoint& ptS, CPoint& ptE, CPoint& ptRes, CPoint& ptDes);
|
|||
|
|
|||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6>Ƿ<EFBFBD>ƽ<EFBFBD><C6BD>
|
|||
|
BOOL IsParallel(CPoint& ptS0, CPoint& ptE0, CPoint& ptS1, CPoint& ptE1);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>.
|
|||
|
BOOL AddOneCtrlPoint(CList<CPoint,CPoint>& listPoint, CList<CPoint,CPoint>& listCtrl);
|
|||
|
|
|||
|
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF>Ƶ<EFBFBD><C6B5>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
void DivideListAccordingToCtrlList(CList<CPoint,CPoint>& listPoint, CList<CPoint,CPoint>& listCtrl, CArray<CList<CPoint,CPoint>,CList<CPoint,CPoint> >& arrayList);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// type
|
|||
|
// Ԫ<><D4AA>
|
|||
|
// listType
|
|||
|
// <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// >=0 <20><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0<EFBFBD><30>ʼ
|
|||
|
// =-1 <20><>Ԫ<EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
template<class TYPE,class ARG_TYPE>
|
|||
|
int FindIndex(TYPE type, CList<TYPE,ARG_TYPE>& listType)
|
|||
|
{
|
|||
|
POSITION pos;
|
|||
|
int iResult, i;
|
|||
|
|
|||
|
iResult = -1;
|
|||
|
i = 0;
|
|||
|
pos = listType.GetHeadPosition();
|
|||
|
while (pos != NULL)
|
|||
|
{
|
|||
|
if (listType.GetAt(pos) == type)
|
|||
|
{
|
|||
|
iResult = i;
|
|||
|
break;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
listType.GetNext(pos);
|
|||
|
i++;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return iResult;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// type
|
|||
|
// Ԫ<><D4AA>
|
|||
|
// (p,nArray)
|
|||
|
// <20><><EFBFBD>鼰<EFBFBD><E9BCB0><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// >=0 <20><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0<EFBFBD><30>ʼ
|
|||
|
// =-1 <20><>Ԫ<EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
template<class TYPE>
|
|||
|
int FindIndex(TYPE type, TYPE* p, int nArray)
|
|||
|
{
|
|||
|
int iResult, i;
|
|||
|
|
|||
|
ASSERT(p != NULL);
|
|||
|
iResult = -1;
|
|||
|
for (i = 0; i < nArray; i++)
|
|||
|
{
|
|||
|
if (p[i] == type)
|
|||
|
{
|
|||
|
iResult = i;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return iResult;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƾ<EFBFBD><C6BE><EFBFBD>.
|
|||
|
double MaxDistanceOfList(CList<CPoint,CPoint>& listPoint, CPoint& point);
|
|||
|
|
|||
|
//<2F>жϵ<D0B6><CFB5>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD>εĹ<CEB5>ϵ
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// point <20><>.
|
|||
|
// listPoint <20><><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// <20><>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =1,<2C><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>;=0,<2C><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;=-1,<2C><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⲿ.
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20>˴<EFBFBD>Ӧ<EFBFBD><D3A6>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD><EFBFBD>,<2C><>:<3A><>β<EFBFBD><CEB2><EFBFBD><EFBFBD>ͬ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0.
|
|||
|
int PointInList(CPoint& point, CList<CPoint,CPoint>& listPoint);
|
|||
|
//<2F>жϵ<D0B6><CFB5>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD>εĹ<CEB5>ϵ.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// point <20><>.
|
|||
|
// pt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>.
|
|||
|
// nArray <20><><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD>Ԫ<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// <20><>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =1,<2C><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>;=0,<2C><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;=-1,<2C><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⲿ.
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20><><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>2<EFBFBD><32>.
|
|||
|
int PointInList(CPoint& point, CPoint* pt, int nArray);
|
|||
|
|
|||
|
//<2F>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// listPoint <20><><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// listPoint <20><><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><>.
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD>㹲<EFBFBD><E3B9B2>,<2C><>ôȥ<C3B4><C8A5><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>.
|
|||
|
// <20>˺<EFBFBD><CBBA><EFBFBD>Ӧ<EFBFBD>ñ<EFBFBD>֤<EFBFBD><D6A4><EFBFBD>ڵĵ㲻<C4B5><E3B2BB>ͬ,<2C>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>.
|
|||
|
void ComboSegment(CList<CPoint,CPoint>& listPoint);
|
|||
|
|
|||
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD>߶<EFBFBD><DFB6>ϲ<EFBFBD><CFB2><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ<EFBFBD>ĵ<EFBFBD><C4B5>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// <20>߶<EFBFBD>(ptS,ptE)
|
|||
|
// dY <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// dX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><>(dX,dY)һ<><D2BB><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>(ptS,ptE)<29><>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><>.
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƿ<EFBFBD><C7B7>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>(PointInList)ʱ<><CAB1><EFBFBD><EFBFBD>,<2C>ڵ<EFBFBD><DAB5>ô˺<C3B4><CBBA><EFBFBD>֮ǰ<D6AE>Ѿ<EFBFBD><D1BE>ܹ<EFBFBD><DCB9><EFBFBD>֤
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶ε<DFB6><CEB5>ӳ<EFBFBD><D3B3><EFBFBD>.
|
|||
|
void GetHorizonPoint(CPoint& ptS, CPoint& ptE, double& dY, double& dX);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// <20><><EFBFBD><EFBFBD>ptStart<72><74>ptEnd,ptStart<72><74>ptTemp
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// <20><>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// = 1<><31>ʱ<EFBFBD><CAB1>, = 0<><30><EFBFBD><EFBFBD>, = -1˳ʱ<CBB3><CAB1>
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptStart<72><74>ptEnd<6E><64>ת<EFBFBD><D7AA>ptStart<72><74>ptTemp<6D><70>˳ʱ<CBB3>뻹<EFBFBD><EBBBB9><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>.
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ת<EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD>180<38><30>,<2C><>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>˳ʱ<CBB3><CAB1><EFBFBD><EFBFBD>.
|
|||
|
// <20>˽<EFBFBD><CBBD><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ,<2C><><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>ϵ<EFBFBD>н<EFBFBD><D0BD><EFBFBD>Ҫȡ<D2AA>෴<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>.
|
|||
|
// <20>˽<EFBFBD><CBBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
int CrossProduct(CPoint& ptStart, CPoint& ptEnd, CPoint& ptTemp);
|
|||
|
|
|||
|
//<2F>ɸ<EFBFBD><C9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// <20>߶<EFBFBD>(ptS, ptE),<2C>з<EFBFBD><D0B7><EFBFBD>,ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD>㲻<EFBFBD><E3B2BB>ͬ.
|
|||
|
// dParam <20><><EFBFBD><EFBFBD>ֵ.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸò<CFB8><C3B2><EFBFBD>ֵ<EFBFBD><D6B5>Ӧ<EFBFBD>ĵ<EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>: <20><>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// CPoint<6E><74>.
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20>˺<EFBFBD><CBBA><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD>ֵ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>ʱ<EFBFBD><CAB1>,ֱ<>ӷ<EFBFBD><D3B7><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
CPoint ParamToPoint(CPoint ptS, CPoint ptE, double dParam);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ص<EFBFBD>
|
|||
|
BOOL IsOverlapOfTwoPolygon(CList<CPoint,CPoint> &listPolygon1,CList<CPoint,CPoint> &listPolygon2);
|
|||
|
|
|||
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// listPoint <20><><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// pt <20><><EFBFBD><EFBFBD>ͷָ<CDB7><D6B8>.
|
|||
|
// nListCount <20><><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>Ŀ.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =TRUE,<2C><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>.=FALSE,<2C><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>.
|
|||
|
//˵<><CBB5>: <20><>.
|
|||
|
BOOL MallocFromList(CList<CPoint,CPoint> &listPoint, CPoint *&pt, int &nListCount);
|
|||
|
|
|||
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// ptS,ptE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// ptMiddle <20>е<EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ: <20><>.
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20><><EFBFBD>ô˺<C3B4><CBBA><EFBFBD>ʱ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ.
|
|||
|
void GetMiddlePoint(CPoint ptS, CPoint ptE, CPoint &ptMiddle);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,>0 <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ʱ<EFBFBD><CAB1>(<28><><EFBFBD><EFBFBD>Ļ<EFBFBD>Ͽ<EFBFBD>Ϊ˳ʱ<CBB3><CAB1>)
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listPoint <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD><EFBFBD>
|
|||
|
double Area(CList<CPoint,CPoint>& listPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>(<28><><EFBFBD><EFBFBD>)һ<><D2BB><EFBFBD>߶<EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// (ptS,ptE) <20><><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>.
|
|||
|
// dLen <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶γ<DFB6><CEB3><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// ptExtend <20>ӳ<EFBFBD>(<28><><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>β<EFBFBD><CEB2>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ: <20><>.
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20><><EFBFBD>ô˺<C3B4><CBBA><EFBFBD>ʱptE<74><45>ptExtend<6E><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬһ<CDAC><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ(ptS,ptExtend)<29>ij<EFBFBD><C4B3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
void ExtendSegment(CPoint &ptS, CPoint &ptE, double dLen, CPoint &ptExtend);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶εĽ<CEB5><C4BD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// <20>߶<EFBFBD>(ptS0,ptE0),(ptS1,ptE1)
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// ptInt <20><><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><>.
|
|||
|
//˵<><CBB5>:
|
|||
|
// ÿ<><C3BF><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ͬ.
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>߶β<DFB6>Ӧƽ<D3A6><C6BD>,<2C>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>.
|
|||
|
// <20><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD>.<2E><>Ϊ<EFBFBD><CEAA><EFBFBD>߶<EFBFBD><DFB6><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ӵĽ<D3B5><C4BD><EFBFBD>.
|
|||
|
void IntPoint(CPoint& ptS0, CPoint& ptE0, CPoint& ptS1, CPoint& ptE1, CPoint& ptInt);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>нǵ<D0BD><C7B5><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// (ptS0,ptE0),(ptS1,ptE1) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// dCos <20>нǵ<D0BD><C7B5><EFBFBD><EFBFBD><EFBFBD>ֵ.
|
|||
|
// dSin <20>нǵ<D0BD><C7B5><EFBFBD><EFBFBD><EFBFBD>ֵ.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =TRUE,<2C>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>.=FALSE,<2C><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>.
|
|||
|
//˵<><CBB5>:
|
|||
|
// ֻ<>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>˻<EFBFBD><CBBB><EFBFBD>ͬһ<CDAC><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>.
|
|||
|
// <20>˼н<CBBC><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
BOOL RotateAngle(CPoint &ptS0, CPoint &ptE0, CPoint &ptS1, CPoint &ptE1, double &dCos, double &dSin);
|
|||
|
|
|||
|
//<2F>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// listPoint <20><><EFBFBD><EFBFBD>.
|
|||
|
// point <20><><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// ptNearest <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
// dLen <20><><EFBFBD>̵ľ<CCB5><C4BE><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// TRUE,<2C>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.FALSE,û<><C3BB><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20><><EFBFBD>ô˺<C3B4><CBBA><EFBFBD>ʱ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ.
|
|||
|
BOOL GetNearestPointOnList(CList<CPoint,CPoint> &listPoint, CPoint &point, CPoint &ptNearest, double &dMinLen);
|
|||
|
|
|||
|
//<2F><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD><CEB2>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// alRsc Դ<><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// alDes Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ: <20><>.
|
|||
|
//˵<><CBB5>: <20><>.
|
|||
|
void AddArrayListTail(CArray<CList<CPoint,CPoint>,CList<CPoint,CPoint> >& alRsc, CArray<CList<CPoint,CPoint>,CList<CPoint,CPoint> >& alDes);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ƽ<EFBFBD>е<EFBFBD><D0B5>߶<EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// (ptS,ptE)
|
|||
|
// <20>߶<EFBFBD>.һ<><D2BB><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>2<EFBFBD><32><EFBFBD>㲻<EFBFBD><E3B2BB><EFBFBD><EFBFBD>ͬ.
|
|||
|
// (dStartHeight,dEndHeight)
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD>ƽ<EFBFBD>о<EFBFBD><D0BE><EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ,<2C><><EFBFBD><EFBFBD>ʱÿ<CAB1><C3BF><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>Բ<EFBFBD>ͬ.
|
|||
|
// bClockwise
|
|||
|
// <20><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>.=TRUE,˳ʱ<CBB3><CAB1>;=FALSE,<2C><>ʱ<EFBFBD><CAB1>.ע<><D7A2>:<3A>˴<EFBFBD><CBB4><EFBFBD>˳ʱ<CBB3><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ"<22><>,<2C><><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>෴.
|
|||
|
// (ptParallelS,ptParallelE)
|
|||
|
// [<5B><><EFBFBD><EFBFBD>]ƽ<><C6BD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>.
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ.
|
|||
|
void ParallelSegment(CPoint ptS, CPoint ptE, double dStartHeight, double dEndHeight, BOOL bClockwise, CPoint& ptParallelS, CPoint& ptParallelE);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// listPoint
|
|||
|
// <20><><EFBFBD><EFBFBD>.
|
|||
|
// (dHeadHeight,dTailHeight)
|
|||
|
// ͷ<><CDB7><EFBFBD><EFBFBD>β<EFBFBD>㴦<EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>ͬ.
|
|||
|
// bClockwise
|
|||
|
// <20><><EFBFBD><EFBFBD>.ƽ<>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>һ<EFBFBD><D2BB>.=TRUE,˳ʱ<CBB3><CAB1>;=FALSE,<2C><>ʱ<EFBFBD><CAB1>.ע<><D7A2>:<3A>˴<EFBFBD><CBB4><EFBFBD>˳ʱ<CBB3><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ"<22><>,<2C><><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>෴.
|
|||
|
// listParallel
|
|||
|
// [<5B><><EFBFBD><EFBFBD>]ƽ<><C6BD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
// dMaxError
|
|||
|
// <20><><EFBFBD><EFBFBD>.<2E>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD>պϵ<D5BA>.<2E><><EFBFBD><EFBFBD><EFBFBD>жϳ<D0B6><CFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DZպ<C7B1>,<2C><>ô<EFBFBD><C3B4><EFBFBD>䰴<EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
// bRemoveIntersect
|
|||
|
// =true ȥ<>Խ<EFBFBD>,=false <20><>ȥ<EFBFBD>Խ<EFBFBD>
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20>ڵ<EFBFBD><DAB5>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ.
|
|||
|
void ParalllelCurve(CList<CPoint,CPoint>& listPoint, double dHeadHeight, double dTailHeight, BOOL bClockwise, CList<CPoint,CPoint>& listParallel, double dMaxError = 0.0, BOOL bRemoveIntersect = TRUE);
|
|||
|
|
|||
|
//ȥ<><C8A5><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// listPoint
|
|||
|
// [<5B><><EFBFBD><EFBFBD>][<5B><><EFBFBD><EFBFBD>]<5D><><EFBFBD><EFBFBD>.
|
|||
|
// bClose
|
|||
|
// <20><>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD>պϵ<D5BA>.
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>DZպϵ<D5BA><CFB5><EFBFBD><EFBFBD><EFBFBD>,<2C><>ô<EFBFBD><C3B4><EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>,<2C><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD>ͷ<EFBFBD>㵽β<E3B5BD><CEB2><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD>.
|
|||
|
void RemoveIntersectPolyline(CList<CPoint,CPoint>& listPoint, BOOL bClose);
|
|||
|
|
|||
|
//<2F><>ȡ<EFBFBD>߽<EFBFBD><DFBD>ڲ<EFBFBD><DAB2>ĵ<EFBFBD><C4B5><EFBFBD>.
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listPoint
|
|||
|
// <20><><EFBFBD><EFBFBD>.
|
|||
|
// listBorder
|
|||
|
// <20>߽<EFBFBD>.ͷβ<CDB7><CEB2><EFBFBD><EFBFBD>ͬҲ<CDAC><D2B2><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ͬҲ<CDAC><D2B2><EFBFBD><EFBFBD>.
|
|||
|
// arrayList
|
|||
|
// [<5B><><EFBFBD><EFBFBD>]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD>.
|
|||
|
void GetListInBorder(int iDPMM,CList<CPoint,CPoint>& listPoint, CList<CPoint,CPoint>& listBorder, CArray<CList<CPoint,CPoint>,CList<CPoint,CPoint> >& arrayList);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ƶ<EFBFBD><C6B5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// (listPoint1,listCtrl1)
|
|||
|
// ʵ<>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ŀ<EFBFBD><C4BF>Ƶ<EFBFBD><C6B5><EFBFBD>
|
|||
|
// listPoint2
|
|||
|
// ʵ<>ʵ<EFBFBD><CAB5><EFBFBD>
|
|||
|
// listCtrl2
|
|||
|
// [<5B><><EFBFBD><EFBFBD>]listPoint2<74><32>Ӧ<EFBFBD>Ŀ<EFBFBD><C4BF>Ƶ<EFBFBD><C6B5><EFBFBD>,<2C><><EFBFBD>е<EFBFBD><D0B5><EFBFBD>Ŀ<EFBFBD><C4BF>listCtrl1<6C><31>ͬ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ö<EFBFBD><C3B6><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵı<CFB5><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>
|
|||
|
void GetProportionCtrlList(int iDPMM,CList<CPoint,CPoint>& listPoint1, CList<CPoint,CPoint>& listCtrl1, CList<CPoint,CPoint>& listPoint2, CList<CPoint,CPoint>& listCtrl2);
|
|||
|
|
|||
|
//<2F><>timeStart<72><74>timeFinish<73><68>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iMillisecondsStart <20><>ʼ<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// iMillisecondsFinish <20><><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,<2C><>λ:<3A><>
|
|||
|
double Duration(int iMillisecondsStart,int iMillisecondsFinish);
|
|||
|
|
|||
|
//<2F><><EFBFBD>Ҹ<EFBFBD><D2B8><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// listPoint
|
|||
|
// <20><><EFBFBD><EFBFBD>,Ҫ<><D2AA>֤<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// alCurve
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int FindListIndex(CList<CPoint,CPoint>& listPoint, CArray<CList<CPoint,CPoint>,CList<CPoint,CPoint> >& alCurve);
|
|||
|
|
|||
|
//<2F><><EFBFBD>㴹<EFBFBD><E3B4B9><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6>ϵIJ<CFB5><C4B2><EFBFBD>ֵ
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// (ptS,ptE)
|
|||
|
// <20>߶<EFBFBD>,Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㲻<EFBFBD><E3B2BB>ͬ,<2C><><EFBFBD><EFBFBD>ֱ<EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD>DBL_MAX
|
|||
|
// point
|
|||
|
// <20><>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// <20><><EFBFBD><EFBFBD>ֵ,<2C><>[0,1]<5D><><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6>ڲ<EFBFBD>
|
|||
|
double GetVerticalParam(CPoint ptS, CPoint ptE, CPoint point);
|
|||
|
|
|||
|
//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM
|
|||
|
// <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listCurve
|
|||
|
// <20><><EFBFBD><EFBFBD>
|
|||
|
// (iDashedLength,iSpaceLength)
|
|||
|
// <20><><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>(ÿһ<C3BF>οɼ<CEBF><C9BC><EFBFBD><EFBFBD>ֵij<D6B5><C4B3><EFBFBD>),<2C><>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>(ÿһ<C3BF>β<EFBFBD><CEB2>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ֵij<D6B5><C4B3><EFBFBD>),ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
// alCurve
|
|||
|
// [<5B><><EFBFBD><EFBFBD>]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>մ<EFBFBD>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2>˳<EFBFBD><CBB3>,<2C>ֶα<D6B6><CEB1><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ֵĵ<D6B5><C4B5><EFBFBD>
|
|||
|
void CustomizeDashedLine(int iDPMM, CList<CPoint,CPoint>& listCurve, int iDashedLength, int iSpaceLength, CArray<CList<CPoint,CPoint>,CList<CPoint,CPoint> >& alCurve);
|
|||
|
|
|||
|
//<2F><><EFBFBD>㽥<EFBFBD><E3BDA5><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// listCurve <20><><EFBFBD><EFBFBD>
|
|||
|
// iDashedLength <20><><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>
|
|||
|
// iSpaceLength <20>հ׳<D5B0><D7B3><EFBFBD>
|
|||
|
// iDashGradualType <20><><EFBFBD>߳<EFBFBD><DFB3>ȵĽ<C8B5><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, =0 <20><>, =1 <20><><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD>, =2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// iDashGradualLength <20><><EFBFBD>߳<EFBFBD><DFB3>ȵĽ<C8B5><C4BD>䳤<EFBFBD><E4B3A4>,<2C><>:ǰһ<C7B0>εĻ<CEB5><C4BB>߳<EFBFBD><DFB3>ȼ<EFBFBD><C8BC>ϸ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ں<EFBFBD>һ<EFBFBD>εĻ<CEB5><C4BB>߳<EFBFBD><DFB3><EFBFBD>
|
|||
|
// dDashGradualScale <20><><EFBFBD>߳<EFBFBD><DFB3>ȵĽ<C8B5><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>:ǰһ<C7B0>εĻ<CEB5><C4BB>߳<EFBFBD><DFB3>ȳ<EFBFBD><C8B3>Ը<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ں<EFBFBD>һ<EFBFBD>εĻ<CEB5><C4BB>߳<EFBFBD><DFB3><EFBFBD>
|
|||
|
// iSpaceGradualType <20>հ׳<D5B0><D7B3>ȵĽ<C8B5><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, =0 <20><>, =1 <20><><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD>, =2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// iSpaceGradualLength <20>հ׳<D5B0><D7B3>ȵĽ<C8B5><C4BD>䳤<EFBFBD><E4B3A4>,<2C><>:ǰһ<C7B0>εĿհ׳<D5B0><D7B3>ȼ<EFBFBD><C8BC>ϸ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ں<EFBFBD>һ<EFBFBD>εĿհ׳<D5B0><D7B3><EFBFBD>
|
|||
|
// dSpaceGradualScale <20>հ׳<D5B0><D7B3>ȵĽ<C8B5><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>:ǰһ<C7B0>εĿհ׳<D5B0><D7B3>ȳ<EFBFBD><C8B3>Ը<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ں<EFBFBD>һ<EFBFBD>εĿհ׳<D5B0><D7B3><EFBFBD>
|
|||
|
// bAdaptiveStretch =TRUE <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>, =FALSE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// alCurve [<5B><><EFBFBD><EFBFBD>]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>մ<EFBFBD>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2>˳<EFBFBD><CBB3>,<2C>ֶα<D6B6><CEB1><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ֵĵ<D6B5><C4B5><EFBFBD>
|
|||
|
void CustomizeGradualDashedLine(int iDPMM, CList<CPoint,CPoint>& listCurve, int iDashedLength, int iSpaceLength,
|
|||
|
int iDashGradualType, int iDashGradualLength, double dDashGradualScale,
|
|||
|
int iSpaceGradualType, int iSpaceGradualLength, double dSpaceGradualScale,
|
|||
|
BOOL bAdaptiveStretch, CArray<CList<CPoint,CPoint>,CList<CPoint,CPoint> >& alCurve);
|
|||
|
|
|||
|
//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>뾶,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// listCurve
|
|||
|
// <20><><EFBFBD><EFBFBD>
|
|||
|
// (iRadius,iSpaceLength,dMaxError)
|
|||
|
// <20>뾶,Բ<>ľ<EFBFBD>(<28><><EFBFBD>Ͼ<EFBFBD><CFBE><EFBFBD>),<2C><><EFBFBD><EFBFBD>Բ<EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>,<2C><>ijһ<C4B3><D2BB>ֵΪ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
|
|||
|
// alPolygon
|
|||
|
// [<5B><><EFBFBD><EFBFBD>]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>մ<EFBFBD>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2>˳<EFBFBD><CBB3>,<2C>ֶα<D6B6><CEB1><EFBFBD>Բ<EFBFBD><D4B2>ʵ<EFBFBD><CAB5>λ<EFBFBD><CEBB>
|
|||
|
void CustomizeCircleCurve(CList<CPoint,CPoint>& listCurve, int iRadius, int iSpaceLength, double dMaxError, CArray<CList<CPoint,CPoint>,CList<CPoint,CPoint> >& alPolygon);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBB>߱պ<DFB1><D5BA><EFBFBD>)
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// listCurve <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// alCustomCurveElement <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA>
|
|||
|
// bClose =TRUE <20>պ<EFBFBD><D5BA><EFBFBD>, =FALSE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ptCustomBasePoint <20><><EFBFBD><D7BC>
|
|||
|
// iCustomCurveHeight <20>߶<EFBFBD>,<2C><><=0<><30>ʹ<EFBFBD><CAB9>alCustomCurveElement<6E><74><EFBFBD><EFBFBD><EFBFBD>ĸ߶<C4B8>
|
|||
|
// iCustomCurveGap <20><><EFBFBD><EFBFBD>Ԫ<EFBFBD>صļ<D8B5><C4BC><EFBFBD>,<2C><><0,<2C><><EFBFBD><EFBFBD><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD>alCustomCurveElement<6E><74><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>
|
|||
|
// bAdaptiveStretch =TRUE <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>ȱ<EFBFBD><C8B1><EFBFBD><EFBFBD>ı<EFBFBD>Ԫ<EFBFBD>صĿ<D8B5><C4BF>Ⱥ߶<CDB8>,ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ԫ<EFBFBD>صĽ<D8B5><C4BD><EFBFBD>), =FALSE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>Ԫ<EFBFBD><D4AA>)
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// alCurve <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
|
|||
|
void CustomizeCurve(CList<CPoint,CPoint>& listCurve, BOOL bClose, CArray<CList<CPoint,CPoint>,CList<CPoint,CPoint> >& alCustomCurveElement, CPoint ptCustomBasePoint,
|
|||
|
int iCustomCurveHeight, int iCustomCurveGap, BOOL bAdaptiveStretch, CArray<CList<CPoint,CPoint>,CList<CPoint,CPoint> >& alCurve);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPoint <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ϵͳ<CFB5>м<EFBFBD><D0BC><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ<EFBFBD><CEAA><EFBFBD>ַ<EFBFBD>ʽ
|
|||
|
CRect GetBorderMinRect(CList<CPoint, CPoint> &listPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ʡɽ<CAA1><C9BD><EFBFBD>ı<DEB8><C4B1><EFBFBD><EFBFBD><EFBFBD>״
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// listPoint1E,listPoint3E
|
|||
|
// [<5B><><EFBFBD><EFBFBD>]<5D><>Ӧ<EFBFBD><D3A6>V<EFBFBD><56>ʡ<EFBFBD><CAA1>1E<31>ߺ<EFBFBD>3E<33><45>,<2C><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD><D7B6>ʡ,<2C><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>14<31>ߺ<EFBFBD>35<33><35>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɽʱҲ<CAB1><D2B2>ͬ<EFBFBD><CDAC><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD>ʱҪ<CAB1><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
// ͬʱ,<2C><>Ҫ<EFBFBD><D2AA>֤<EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>1->3<>㳤<EFBFBD><E3B3A4>С<EFBFBD><D0A1>3->1<>㳤<EFBFBD><E3B3A4>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
// [<5B><><EFBFBD><EFBFBD>]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>֤ͷ<D6A4><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPoint2E
|
|||
|
// <20><><EFBFBD><EFBFBD>ʡ<EFBFBD><CAA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>ʹ<EFBFBD>ø<EFBFBD><C3B8><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD>Գƺ<D4B3><C6BA><EFBFBD>ʡɽ<CAA1>ض<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>,<2C><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʡ<EFBFBD><CAA1><EFBFBD>м<EFBFBD><D0BC><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
|
|||
|
// listBorder
|
|||
|
// [<5B><><EFBFBD><EFBFBD>][<5B><><EFBFBD><EFBFBD>]<5D><><EFBFBD>ߵ<EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>,Ҫ<><D2AA>ͷβ<CDB7><CEB2><EFBFBD><EFBFBD>ͬ;<3B><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>ʡɽ<CAA1><C9BD><EFBFBD><EFBFBD>״<EFBFBD><D7B4><EFBFBD>ӽ<EFBFBD>ȥ
|
|||
|
// bClockwise
|
|||
|
// =TRUE ˳ʱ<CBB3>뵹<EFBFBD><EBB5B9>(<28>Ӿ<EFBFBD><D3BE>ϵ<EFBFBD>˳ʱ<CBB3><CAB1>),<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>GetNext
|
|||
|
// dMaxError
|
|||
|
// <20>ж<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD>Ƿ<EFBFBD><C7B7>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>ֵ,<2C><><EFBFBD><EFBFBD>ʡ<EFBFBD><CAA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ڸ<EFBFBD>ֵͬ<D6B5><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FALSE
|
|||
|
// ptDartHill
|
|||
|
// [<5B><><EFBFBD><EFBFBD>]ʡɽ<CAA1>ļ<EFBFBD><C4BC><EFBFBD>λ<EFBFBD><CEBB>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD>ʡɽ<CAA1><C9BD><EFBFBD><EFBFBD><EFBFBD>뵽<EFBFBD><EBB5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>Dz<EFBFBD>֪<EFBFBD><D6AA>ʡɽ<CAA1><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>״(<28><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>Ҳ<EFBFBD>ǵ<EFBFBD><C7B5>ô˺<C3B4><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɽ<EFBFBD><C9BD>)
|
|||
|
BOOL CalculateDartHill(int iDPMM, CList<CPoint,CPoint>& listPoint1E, CList<CPoint,CPoint>& listPoint3E, CList<CPoint,CPoint>& listPoint2E, CList<CPoint,CPoint>& listBorder, BOOL bClockwise, double dMaxError, CPoint& ptDartHill);
|
|||
|
|
|||
|
//<2F><><EFBFBD>㹤<EFBFBD><E3B9A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD>ı<DEB8><C4B1><EFBFBD><EFBFBD><EFBFBD>״
|
|||
|
//<2F>ر<EFBFBD>˵<EFBFBD><CBB5>:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɽ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ʡ<EFBFBD><CAA1>ͬ,<2C><><EFBFBD><EFBFBD>CalculateDartHill<6C><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>Ĺ<DEB5><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// <20><><EFBFBD><EFBFBD>CalculateDartHill<6C><6C><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>˵<EFBFBD><CBB5>,ע<><D7A2>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB2>漰<EFBFBD><E6BCB0><EFBFBD><EFBFBD>
|
|||
|
BOOL CalculatePleatHill(int iDPMM, CList<CPoint,CPoint>& listPoint12, CList<CPoint,CPoint>& listPoint34, CList<CPoint,CPoint>& listBorder, double dMaxError);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1> p0p1<70><31><EFBFBD><EFBFBD>p0<70><30><EFBFBD><EFBFBD>Ϊ dDistance <20>ĵ<EFBFBD>
|
|||
|
CPoint GetPointOnLine(CPoint p0,CPoint p1,double dDistance);
|
|||
|
|
|||
|
|
|||
|
//20170222 <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] listPoint1,listPoint2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] ptInt<6E><74><EFBFBD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] iIntIndex <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, -1<><31><EFBFBD><EFBFBD> GetIntPointOfTwoCurve( int iDPMM, CList<CPoint,CPoint>& listPoint1, CList<CPoint,CPoint>& listPoint2, CPoint& ptInt, int iCount)<29><><EFBFBD><EFBFBD>
|
|||
|
// 0, 1,2...<2E><><EFBFBD><EFBFBD>listPoint1,listPoint2<74><32><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD>㣨<EFBFBD><E3A3A8><EFBFBD><EFBFBD><EFBFBD>ཻ<EFBFBD><E0BDBB><EFBFBD>ӳ<EFBFBD><D3B3>ཻ<EFBFBD><E0BDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ұ<EFBFBD><D2B0><EFBFBD>listPoint1<74>ĵ<EFBFBD><C4B5><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>]iCount <20><><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD>ٽ<EFBFBD><D9BD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =TRUE <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>
|
|||
|
// =FALSE <20><><EFBFBD>⽻<EFBFBD><E2BDBB>ʧ<EFBFBD><CAA7>,<2C><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>ƽ<EFBFBD>н<EFBFBD><D0BD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>ǽ<EFBFBD><C7BD>㲻ͬ<E3B2BB><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĺ<D3B5><C4BA><EFBFBD>
|
|||
|
// iIntIndexΪ-1<><31>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ԭ<EFBFBD>еĽ<D0B5><C4BD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30> 1<><31>2...ʱ<><CAB1>ʾ<EFBFBD><CABE>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
BOOL GetIntPointOfTwoCurve( int iDPMM, CList<CPoint,CPoint>& listPoint1, CList<CPoint,CPoint>& listPoint2, CPoint& ptInt, int iIntIndex, int iCount);
|
|||
|
|
|||
|
//20170222 <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>(<28>ཻ<EFBFBD>ģ<EFBFBD> <20>ӳ<EFBFBD><D3B3>ཻ<EFBFBD><E0BDBB>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>listPoint1<74><31><EFBFBD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] listPoint1,listPoint2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] listInt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĽ<D0B5><C4BD>㣬<EFBFBD><E3A3AC><EFBFBD>㰴<EFBFBD><E3B0B4>listPoint1<74><31><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =TRUE <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>
|
|||
|
// =FALSE <20><><EFBFBD>⽻<EFBFBD><E2BDBB>ʧ<EFBFBD><CAA7>,<2C><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
//<2F>ú<EFBFBD><C3BA><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//1. listPoint1/listPoint2<74><32><EFBFBD>ǷDZպ<C7B1><D5BA><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬<EFBFBD>ٰ<EFBFBD><D9B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷβ<CDB7><CEB2><EFBFBD>ֱ<EFBFBD><D6B1>ӳ<EFBFBD>
|
|||
|
//2. listPoint1/listPoint2һ<32><D2BB><EFBFBD>DZպ<C7B1>,һ<><D2BB><EFBFBD>պ<EFBFBD>; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>DZպ<C7B1><D5BA>ߵ<EFBFBD><DFB5>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>պ<EFBFBD><D5BA>߽<EFBFBD><DFBD><EFBFBD>
|
|||
|
//3. listPoint1/listPoint2<74><32><EFBFBD>DZպ<C7B1><D5BA><EFBFBD><EFBFBD><EFBFBD>,ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD>㷵<EFBFBD><E3B7B5>
|
|||
|
BOOL GetIntPointOfTwoCurve_All( int iDPMM, CList<CPoint,CPoint>& listPoint1, CList<CPoint,CPoint>& listPoint2, CList<CPoint,CPoint>& listInt);
|
|||
|
|
|||
|
//20130717 <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĽ<DFB5><C4BD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] listPoint1,listPoint2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] ptInt<6E><74><EFBFBD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>]iCount <20><><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD>ٽ<EFBFBD><D9BD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =TRUE <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>
|
|||
|
// =FALSE <20><><EFBFBD>⽻<EFBFBD><E2BDBB>ʧ<EFBFBD><CAA7>,<2C><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3>ཻ
|
|||
|
BOOL GetIntPointOfTwoCurve(int iDPMM, CList<CPoint,CPoint>& listPoint1, CList<CPoint,CPoint>& listPoint2, CPoint& ptInt, int iCount);
|
|||
|
|
|||
|
|
|||
|
//20130717 <20><><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] ptStart,ptEnd <20><><EFBFBD><EFBFBD>,<2C>з<EFBFBD><D0B7><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] listPoint <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⽻<EFBFBD><E2BDBB>,<2C><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>ͷβ<CDB7><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] ptInt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ôֻ<C3B4><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =TRUE <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>,<2C><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// =FALSE <20><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>,<2C><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
BOOL GetExtendInt(int iDPMM, CPoint ptStart, CPoint ptEnd, CList<CPoint,CPoint>& listPoint, CPoint& ptInt);
|
|||
|
|
|||
|
//20170223<32><33><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] ptStart,ptEnd <20><><EFBFBD><EFBFBD>,<2C>з<EFBFBD><D0B7><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] listPoint <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⽻<EFBFBD><E2BDBB>,<2C><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>ͷβ<CDB7><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] listInt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =TRUE <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>,<2C><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// =FALSE <20><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>,<2C><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
BOOL GetExtendInt(int iDPMM, CPoint ptStart, CPoint ptEnd, CList<CPoint,CPoint>& listPoint, CList<CPoint,CPoint>& listInt);
|
|||
|
|
|||
|
//20130718 <20><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD>ȡһ<C8A1><D2BB> 20140427 <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
//[<5B><><EFBFBD><EFBFBD>]ptPointS<74><53> ptPointE <20><>ȡ<EFBFBD><C8A1><EFBFBD>ߵ<EFBFBD>ͷβ<CDB7><CEB2>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>][<5B><><EFBFBD><EFBFBD>]listPoint <20><><EFBFBD><EFBFBD>:ԭʼ<D4AD><CABC><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ֮<C8A1><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] listPointMax <20><EFBFBD><EEB3A4><EFBFBD><EFBFBD>
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// ptPointS<74><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD><CEB2>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ptPointS<74><53>ptPointE<74><45><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ptPointS<74><53><EFBFBD><EFBFBD>ptPointEֻ<45><D6BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵĽ<CFB5><C4BD><EFBFBD><EFBFBD>߷ֳ<DFB7><D6B3><EFBFBD><EFBFBD>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷβ<CDB7><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>)<29>õ<EFBFBD><C3B5><EFBFBD>Ҫ<EFBFBD><D2AA>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ptPointS<74><53>ptPointE<74><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ptPointS<74><53>ptPointE<74><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ͬ<EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>ֻ<EFBFBD><D6BB>ptPointS<74><53>ptPointE<74><45><EFBFBD><EFBFBD>
|
|||
|
//<2F><EFBFBD><EEB3A4><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>listPointMax
|
|||
|
//<2F><><EFBFBD><EFBFBD>ptPointS<74><53> ptPointE<74><45><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>listPoint;
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>أ<EFBFBD>listPoint<6E><74><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ϵĵ<CFB5>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ϣ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD><E0A3AC><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>listPointͷβ<CDB7><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD><E0A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void GetCurveSegment(int iDPMM, CPoint ptPointS, CPoint ptPointE, CList<CPoint,CPoint>& listPoint, CList<CPoint,CPoint>& listPointMax);
|
|||
|
|
|||
|
//20130815 XQ <20><><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// (ptUp,ptDown)
|
|||
|
// չ<><D5B9>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9>
|
|||
|
// (iUpWidth,iDownWidth)
|
|||
|
// <20><><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>,ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ,<2C>κ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD><EFBFBD><EFBFBD>Ϊ0
|
|||
|
// bClockWise
|
|||
|
// =TRUE,˳ʱ<CBB3><CAB1><EFBFBD><EFBFBD>ת;=FALSE,<2C><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ת.<2E><><EFBFBD><EFBFBD>תΪ<D7AA><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>,<2C><><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>ϵ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>෴
|
|||
|
// (ptSpreadUp,ptSpreadDown)
|
|||
|
// [<5B><><EFBFBD><EFBFBD>]չ<><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9>,<2C><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ptUp,ptDown)ʹ<><CAB9><EFBFBD><EFBFBD>ͬ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
|||
|
void CalculateSpreadEndPoint(CPoint ptUp, CPoint ptDown, int iUpWidth, int iDownWidth, BOOL bClockWise, CPoint& ptSpreadUp, CPoint& ptSpreadDown);
|
|||
|
|
|||
|
//<2F>жϸ<D0B6><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>ijһ<C4B3>߶<EFBFBD><DFB6><EFBFBD>)
|
|||
|
//<2F><><EFBFBD><EFBFBD>:
|
|||
|
// iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
// ptPoint <20><><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|||
|
// listPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
// =TRUE <20><><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
BOOL PointInPolyline(int iDPMM, CPoint ptPoint, CList<CPoint,CPoint>& listPoint);
|
|||
|
|
|||
|
|
|||
|
//20160718 XQ <20><><EFBFBD><EFBFBD>listRefPoint<6E><74>listSortPoint<6E><74><EFBFBD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] iDPMM <20><><EFBFBD>ȷֱ<C8B7><D6B1><EFBFBD>(һ<><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>λ<EFBFBD><CEBB>Ϊ1/iDPMM<4D><4D><EFBFBD><EFBFBD>)
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] listRefPoint <20>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>][<5B><><EFBFBD><EFBFBD>] listSortPoint <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20><>listSortPoint<6E>еĵ<D0B5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>listRefPoint<6E><74>˳<EFBFBD><CBB3><EFBFBD>ŷ<EFBFBD>,listSortPoint<6E>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD>listRefPoint<6E><74>
|
|||
|
void SortIntPoint(int iDPMM, CList<CPoint, CPoint> &listRefPoint, CList<CPoint, CPoint> &listSortPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TYPE
|
|||
|
template<class TYPE>
|
|||
|
void Swap(TYPE& p1, TYPE& p2)
|
|||
|
{
|
|||
|
TYPE p3;
|
|||
|
|
|||
|
p3 = p1;
|
|||
|
p1 = p2;
|
|||
|
p2 = p3;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
template<class TYPE>
|
|||
|
void Swap(CList<TYPE,TYPE>& list1, CList<TYPE,TYPE>& list2)
|
|||
|
{
|
|||
|
CList<TYPE,TYPE> list3;
|
|||
|
|
|||
|
list3.RemoveAll();
|
|||
|
list3.AddTail(&list1);
|
|||
|
list1.RemoveAll();
|
|||
|
list1.AddTail(&list2);
|
|||
|
list2.RemoveAll();
|
|||
|
list2.AddTail(&list3);
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
// [<5B><><EFBFBD><EFBFBD>] Value <20><><EFBFBD><EFBFBD>ֵ
|
|||
|
// [<5B><><EFBFBD><EFBFBD>][<5B><><EFBFBD><EFBFBD>] arrayValue <20><><EFBFBD><EFBFBD>
|
|||
|
// [<5B><><EFBFBD><EFBFBD>] iCount <20><><EFBFBD>ݴ<EFBFBD>С
|
|||
|
// ˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ÿ<EFBFBD><C3BF>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ֵ
|
|||
|
template<class TYPE>
|
|||
|
void SetSameValue(TYPE Value, CArray<TYPE,TYPE> &arrayValue, int iCount)
|
|||
|
{
|
|||
|
int iIndex;
|
|||
|
|
|||
|
arrayValue.RemoveAll();
|
|||
|
arrayValue.SetSize(iCount);
|
|||
|
for (iIndex = 0; iIndex < iCount; iIndex++)
|
|||
|
{
|
|||
|
arrayValue[iIndex] = Value;
|
|||
|
}
|
|||
|
}
|
|||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>ֵ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// [<5B><><EFBFBD><EFBFBD>] arryValue <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|||
|
// =true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD>
|
|||
|
// =false <20><><EFBFBD>ٴ<EFBFBD><D9B4><EFBFBD>һ<EFBFBD><D2BB>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>False, <20><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>һ<EFBFBD><D2BB>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>True
|
|||
|
template<class TYPE>
|
|||
|
BOOL IsSameValue(CArray<TYPE,TYPE> &arryValue)
|
|||
|
{
|
|||
|
BOOL bEqual;
|
|||
|
int iIndex, iCount;
|
|||
|
TYPE Value;
|
|||
|
|
|||
|
bEqual = TRUE;
|
|||
|
iCount = arryValue.GetSize();
|
|||
|
if (iCount == 0)
|
|||
|
{
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
if (iCount == 1)
|
|||
|
{
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
|
|||
|
Value = arryValue[0];
|
|||
|
for (iIndex = 1; (iIndex < iCount) && bEqual; iIndex++)
|
|||
|
{
|
|||
|
if (Value != arryValue[iIndex])
|
|||
|
{
|
|||
|
bEqual = FALSE;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return bEqual;
|
|||
|
}
|
|||
|
|
|||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>
|
|||
|
// [<5B><><EFBFBD><EFBFBD>] arryValue1 <20><><EFBFBD><EFBFBD>
|
|||
|
// [<5B><><EFBFBD><EFBFBD>] arryValue2 <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|||
|
// =true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ӧ<EFBFBD><D3A6>ÿ<EFBFBD><C3BF>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD>
|
|||
|
// =false <20><><EFBFBD>ٴ<EFBFBD><D9B4><EFBFBD>һ<EFBFBD><D2BB>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
template<class TYPE>
|
|||
|
BOOL IsSameValue(CArray<TYPE,TYPE> &arryValue1, CArray<TYPE,TYPE> &arryValue2)
|
|||
|
{
|
|||
|
BOOL bEqual;
|
|||
|
int iIndex, iCount;
|
|||
|
|
|||
|
bEqual = TRUE;
|
|||
|
if (arryValue1.GetSize() != arryValue2.GetSize())
|
|||
|
{
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
iCount = arryValue1.GetSize();
|
|||
|
if (iCount == 0)
|
|||
|
{
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
|
|||
|
for (iIndex = 0; (iIndex < iCount) && bEqual; iIndex++)
|
|||
|
{
|
|||
|
if (arryValue1[iIndex] != arryValue2[iIndex])
|
|||
|
{
|
|||
|
bEqual = FALSE;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return bEqual;
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// [<5B><><EFBFBD><EFBFBD>] arryValueSrc ԭ<><D4AD><EFBFBD><EFBFBD>
|
|||
|
// [<5B><><EFBFBD><EFBFBD>][<5B><><EFBFBD><EFBFBD>] arryValueDes Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
template<class TYPE>
|
|||
|
void CopyData(CArray<TYPE,TYPE> &arryValueSrc, CArray<TYPE,TYPE> &arryValueDes)
|
|||
|
{
|
|||
|
int iIndex, iCount;
|
|||
|
|
|||
|
arryValueDes.RemoveAll();
|
|||
|
iCount = arryValueSrc.GetSize();
|
|||
|
for (iIndex = 0; iIndex < iCount; iIndex++)
|
|||
|
{
|
|||
|
arryValueDes.Add(arryValueSrc[iIndex]);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//<2F>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
// [<5B><><EFBFBD><EFBFBD>] arryValue <20><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>0
|
|||
|
template<class TYPE>
|
|||
|
TYPE FindMaxCount(CArray<TYPE,TYPE> &arryValue)
|
|||
|
{
|
|||
|
int iIndex, iCount;
|
|||
|
TYPE MaxValue;
|
|||
|
|
|||
|
iCount = arryValue.GetSize();
|
|||
|
if (iCount == 0)
|
|||
|
{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
MaxValue = arryValue[0];
|
|||
|
for (iIndex = 1; iIndex < iCount; iIndex++)
|
|||
|
{
|
|||
|
if (MaxValue < arryValue[iIndex])
|
|||
|
{
|
|||
|
MaxValue = arryValue[iIndex];
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return MaxValue;
|
|||
|
}
|
|||
|
|
|||
|
#endif
|