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_)