|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD> Arc.h
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2005-12-07
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "curveex.h"
|
|
|
|
|
|
#include ".\circle.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS CArc : public CEllipse
|
|
|
|
|
|
{
|
|
|
|
|
|
CCurveEx *m_pCurveArc;
|
|
|
|
|
|
public:
|
|
|
|
|
|
CArc(void);
|
|
|
|
|
|
virtual ~CArc(void);
|
|
|
|
|
|
|
|
|
|
|
|
double step;
|
|
|
|
|
|
double arc1,arc2;
|
|
|
|
|
|
|
|
|
|
|
|
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 int IsInRange(CRect8 &range,void *HowToViewCurve=NULL);
|
|
|
|
|
|
virtual void GetRange(CRect8 &range,void *HowToViewCurve=NULL);
|
|
|
|
|
|
virtual void GetRange(CPoint3D& minPoint, CPoint3D& maxPoint);
|
|
|
|
|
|
virtual void ScaleProperty(double sx, double sy);
|
|
|
|
|
|
virtual void Rotate(double xs, double ys, double angle);
|
|
|
|
|
|
virtual void Offset(double dx, double dy);
|
|
|
|
|
|
virtual void ScaleCoor(double xs, double ys, double dx, double dy);
|
|
|
|
|
|
virtual void ExchangeXY(void);
|
|
|
|
|
|
virtual void ExchangeXY(void* pProjection); //ת<><D7AA><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD>,CPrljectio* pProjection
|
|
|
|
|
|
// typeΪУ<CEAA><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Уλ<D0A3><CEBB><EFBFBD>ĵ<EFBFBD>Уλ<D0A3><CEBB>;pValueΪ<65><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC>CCalibrate2<65><32>CCalibrate4<65><34>
|
|
|
|
|
|
virtual void Calibrate(int type, void* pValue);
|
|
|
|
|
|
|
|
|
|
|
|
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 int ReadPCG2(CFile &fr, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
void SetParameter(CPoint2D CircleCenter, CPoint2D ptStart, CPoint2D ptEnd);
|
|
|
|
|
|
void GetInTriangle(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>
|
|
|
|
|
|
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 operator = (CArc &t);
|
|
|
|
|
|
void GetCurve(double step1);
|
|
|
|
|
|
CCurveEx* GetCurve(void);
|
|
|
|
|
|
|
|
|
|
|
|
DWORD GetType(void);
|
|
|
|
|
|
void SetType(DWORD nType);
|
|
|
|
|
|
|
|
|
|
|
|
COLORREF color;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD>еĶ<D0B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
|
|
|
|
|
|
enum ArcStyleFlags
|
|
|
|
|
|
{
|
|
|
|
|
|
drawArc = 0x0008, //<2F><>ʾΪ<CABE><CEAA>
|
|
|
|
|
|
drawChord = 0x0010, //<2F><>ʾΪ<CABE><CEAA>
|
|
|
|
|
|
drawPie = 0x0020 //<2F><>ʾΪ<CABE><CEAA>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
int toCurve(double &step1);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
virtual int ReadPCG(void *pxp, const short &ver);
|
|
|
|
|
|
virtual int ReadPCG2(void *pxp, const short &ver);
|
|
|
|
|
|
};
|