www.pudn.com > 44757463.rar > BezierCurve.h
// BezierCurve.h: interface for the CBezierCurve class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_BEZIERCURVE_H__FDF4BE28_88BA_4CBD_8937_7B969AD30E11__INCLUDED_)
#define AFX_BEZIERCURVE_H__FDF4BE28_88BA_4CBD_8937_7B969AD30E11__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Shape.h"
class CBezierCurve : public CShape
{
DECLARE_SERIAL(CBezierCurve)
/////////////////////////////////////
public:
public:
CBezierCurve();
CBezierCurve(COLORREF color,int penWidth,float angle);
CBezierCurve(CBezierCurve * const pBezierCurve);
virtual ~CBezierCurve();
public:
//virtual operations
virtual void Serialize( CArchive& );
virtual void SetPtData(CArray& flArrayX,CArray& flArrayY);
virtual void GetPtData(CArray& flArrayX,CArray& flArrayY);
virtual void Draw(CDC *pDC,COLORREF color,COLORREF fillColor,int penWidth);
virtual void DrawPoints(CDC *pDC,COLORREF color);
virtual void DrawPointsCutTo(CDC *pDC,COLORREF color,CFlRect m_rectFrom,CRect m_rectTo);
virtual int IsPointinRegion(POINT point);
virtual void CreatGraph(CArray& ptArray,int nPenWidth,COLORREF color,COLORREF fillColor,SHAPE_FILLSTYLE nStyle=_shape_none_fill);
virtual void CreatGraph(CArray& flArrayX,CArray& flArrayY,int nPenWidth,COLORREF color,COLORREF fillColor,SHAPE_FILLSTYLE nStyle=_shape_none_fill);
virtual void DrawCutToRect(CDC *pDC,COLORREF color,COLORREF fillColor,int penWidth,CFlRect m_rectFrom,CRect m_rectTo);
virtual void Move(CDC *pDC,float stepx,float stepy);
virtual void PartMove(CDC *pDC,float PrevX,float PrevY,float CurX,float CurY);
virtual void Rotate(CDC *pDC,float CX,float CY,float flAngle);
virtual void Magnify(CDC *pDC,float CX,float CY,float flScale);
//在矩形内上下反转
virtual void TopToBottom(CDC* pDC,CRect rect);
//在矩形内左右反转
virtual void LeftToRight(CDC* pDC,CRect rect);
virtual CShape* GetCopy();
virtual void ExPort(FILE* outStream);//增加导出txt功能时用
virtual void ImPort(FILE* InStream);
virtual GRAPH_SHAPE_TYPE GetShapeKind(){
return _shape_BezierCurve;
}
virtual CString GetNameString();
virtual void RefreshData(bool bRefresh);
virtual int IsInRect(CRect rect);
virtual CRect GetBoundaryRect();
virtual CPoint GetCenterPoint();
virtual int GetPtState(float flx,float fly,float flRate);
//Begin of deletion
//For Project GraphSoft,delete by FNST)Xiagongli 2004.3.31
//virtual int GetPointNum(){
// return 4;
//}
//end of deletion
protected:
int deCasteljau(CDC *pDC,CArray& flArrayx,CArray& flArrayy);
////////////////////
private:
//save(start)
CArray m_flArrayx;
CArray m_flArrayy;
//save(end)
//not save(start)
//temp(start)
CArray m_flArrayxTemp;
CArray m_flArrayyTemp;
//temp(end)
//not save(end)
};
#endif // !defined(AFX_BEZIERCURVE_H__FDF4BE28_88BA_4CBD_8937_7B969AD30E11__INCLUDED_)