|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD> Circle.h
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2005-12-07
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include ".\pointnamerect.h"
|
|
|
|
|
|
#include "curveex.h"
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS CEllipse : public CPointNameRect
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CEllipse(void);
|
|
|
|
|
|
virtual ~CEllipse(void);
|
|
|
|
|
|
|
|
|
|
|
|
void Serialize(CArchive& ar, const short &ver) override;
|
|
|
|
|
|
virtual int Read(CFile &fr, const short& ver);
|
|
|
|
|
|
virtual void Write(CFile &fw, const short& ver);
|
|
|
|
|
|
virtual bool GetRange(CRect8 &range);
|
|
|
|
|
|
virtual BOOL IsInRange(CRect8& range);
|
|
|
|
|
|
virtual void Rotate(double xs, double ys, double angle);
|
|
|
|
|
|
virtual void ScaleProperty(double sx, double sy);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void WriteDML(CFile &fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
virtual int ReadDML(CFile &fr, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void WritePCG(CFile &fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
virtual int ReadPCG(CFile &fr, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void WritePCG2(CFile &fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
virtual int ReadPCG2(CFile &fr, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
int ReadEllipse(CFile &fr); //<2F>ϸ<EFBFBD>ʽ<EFBFBD><CABD>Բ
|
|
|
|
|
|
|
|
|
|
|
|
virtual void SetInTriangle(CPoint2D& ptArc1, CPoint2D& ptArc2, CPoint2D& ptArc3);//<2F><><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ
|
|
|
|
|
|
void GetPoint(double& x, double &y, double angle); //<2F><><EFBFBD>ݽǶȻ<C7B6><C8BB><EFBFBD>Բ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
CCurveEx* ToCurve(double AngleStep);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD>Ҫdelete;
|
|
|
|
|
|
CSize8 GetRadius(int nMode=0); //<2F><><EFBFBD>ð뾶,nMode=0Ϊԭ<CEAA>뾶<EFBFBD><EBBEB6>nMode=1Ϊ<31><CEAA><EFBFBD>İ뾶<C4B0><EBBEB6>ԭ<EFBFBD>뾶+<2B><><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>/2<><32>,nMode=2Ϊ<32><CEAA><EFBFBD><EFBFBD><EFBFBD>뾶<EFBFBD><EBBEB6>ԭ<EFBFBD>뾶+<2B><><EFBFBD>ȣ<EFBFBD>
|
|
|
|
|
|
void operator=(CEllipse& cir);
|
|
|
|
|
|
|
|
|
|
|
|
double m_dCurveWidth; //<2F><><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>
|
|
|
|
|
|
DWORD m_nFlags; //<2F><><EFBFBD>ȶ<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
|
|
|
|
|
|
DWORD GetWidthPosition(void);
|
|
|
|
|
|
void SetWidthPosition(DWORD nPos);
|
|
|
|
|
|
|
|
|
|
|
|
COLORREF color;
|
|
|
|
|
|
COLORREF fillColor;
|
|
|
|
|
|
int fillState = 0; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>(4<><34>, 20<32><30><EFBFBD><EFBFBD> <20><>˫<EFBFBD><CBAB>2032<33><32><EFBFBD><EFBFBD>)
|
|
|
|
|
|
|
|
|
|
|
|
// Width Style Flags
|
|
|
|
|
|
enum WidthStyleFlags
|
|
|
|
|
|
{
|
|
|
|
|
|
posCenter = 0x0001, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
posOut = 0x0002, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
posIn = 0x0004 //<2F>ڲ<EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
virtual int ReadPCG(void *pxp, const short &ver);
|
|
|
|
|
|
virtual int ReadPCG2(void *pxp, const short &ver);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS CCircle : public CEllipse
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CCircle(void);
|
|
|
|
|
|
virtual ~CCircle(void);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
virtual int Read(CFile &fr, const short& ver);
|
|
|
|
|
|
virtual void Write(CFile &fw, const short& ver);
|
|
|
|
|
|
virtual void WriteDML(CFile &fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
virtual int ReadDML(CFile &fw, const short &ver);
|
|
|
|
|
|
virtual int ReadDMLDonut(CFile &fr, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void WritePCG(CFile &fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
virtual int ReadPCG(CFile &fw, const short &ver);
|
|
|
|
|
|
virtual int ReadPCGDonut(CFile &fr, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
//virtual int ReadAnyPCG(CFile &fw, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void ScaleProperty(double sx, double sy);
|
|
|
|
|
|
|
|
|
|
|
|
int ReadDonut(CFile& fr);
|
|
|
|
|
|
void operator=(CCircle& cir);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
virtual int ReadPCG(void *pxp, const short &ver);
|
|
|
|
|
|
virtual int ReadPCGDonut(void *pxp, const short &ver);
|
|
|
|
|
|
};
|