|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD> TraceCurveWnd.h
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2005-12-07
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
//#include "rect8.h"
|
|
|
|
|
|
//#include "ScreenXY.h"
|
|
|
|
|
|
#include "TraceContour.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace NImage
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS CTraceCurveWnd
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CTraceCurveWnd(void);
|
|
|
|
|
|
virtual ~CTraceCurveWnd(void);
|
|
|
|
|
|
|
|
|
|
|
|
CTraceContour& GetImageTrace(void);
|
|
|
|
|
|
|
|
|
|
|
|
int GetScreenCurveWidth(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><D8BF><EFBFBD>
|
|
|
|
|
|
double GetCurveWidth(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʿ<EFBFBD><CABF><EFBFBD>
|
|
|
|
|
|
void SetCurveWidth(double dWidth);
|
|
|
|
|
|
COLORREF GetCurveTraceColor(void);
|
|
|
|
|
|
void SetCurveTraceColor(COLORREF color);
|
|
|
|
|
|
|
|
|
|
|
|
void SetImage(CImageBase* pImage);
|
|
|
|
|
|
CImageBase* GetImage(void);
|
|
|
|
|
|
|
|
|
|
|
|
void SetDC(CDC* pDC);
|
|
|
|
|
|
CDC* GetDC(void);
|
|
|
|
|
|
|
|
|
|
|
|
void SetScreenXY(CScreenXY& csxy);
|
|
|
|
|
|
void SetImageRealPosition(double x0, double y0, double realWidth, double realHeight); //<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>ʵ<EFBFBD><CAB5>λ<EFBFBD><CEBB>
|
|
|
|
|
|
|
|
|
|
|
|
virtual POINT OnLButtonDown(UINT nFlags, CPoint point);
|
|
|
|
|
|
virtual POINT OnLButtonUp(UINT nFlags, CPoint point);
|
|
|
|
|
|
virtual POINT OnMouseMove(UINT nFlags, CPoint point);
|
|
|
|
|
|
virtual BOOL OnKeyDown(UINT nChar);
|
|
|
|
|
|
|
|
|
|
|
|
int AddCurve(POSITION AddImageCurve(CCurve *pCurve));
|
|
|
|
|
|
void CancelCurrentTrace(void); //<2F><><EFBFBD><EFBFBD>ǰ<C7B0>ٵĵ<D9B5><C4B5><EFBFBD><EFBFBD>գ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7B7>
|
|
|
|
|
|
|
|
|
|
|
|
void DrawTrace(void);
|
|
|
|
|
|
void DrawTrace(CDC& dc, CRect8& rect, COLORREF color);
|
|
|
|
|
|
|
|
|
|
|
|
//ȫ<>Զ<EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD>
|
|
|
|
|
|
int AutoTraceAll(int nTraceMode, double pnt_error_tolerance, double min_polyline_lenght,
|
|
|
|
|
|
POSITION AddImageCurve(CCurve *pCurve));//nTraceMode=1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, nTraceMode=2:˫<><CBAB>
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
POINT ScreenToImage(POINT pointScreen); //<2F><>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊͼ<CEAA><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CPoint2D ImageToReal(CPoint2D pointImage); //ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
POINT ImageToScreen(POINT pointImage); //ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
CTraceContour m_ImageTrace; //<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><D7B7>
|
|
|
|
|
|
CDC* m_pDrawDC;
|
|
|
|
|
|
|
|
|
|
|
|
int loop;
|
|
|
|
|
|
POINT tracePoint[2];
|
|
|
|
|
|
COLORREF CurveTraceColor;
|
|
|
|
|
|
COLORREF CurveDeleteColor;
|
|
|
|
|
|
double UndoLong;
|
|
|
|
|
|
double m_dCurveWidth; //<><D7B7><EFBFBD><EFBFBD><EFBFBD>ߵĿ<DFB5><C4BF><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
CScreenXY cs;
|
|
|
|
|
|
CRect8 m_rect; //λͼ<CEBB><CDBC>ʾλ<CABE>ö<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>
|
|
|
|
|
|
double x0; //ͼ<><CDBC>ʵ<EFBFBD><CAB5>λ<EFBFBD>ã<EFBFBD>ԭ<EFBFBD>㣬<EFBFBD>߶ȣ<DFB6><C8A3><EFBFBD><EFBFBD>ȣ<EFBFBD>
|
|
|
|
|
|
double y0;
|
|
|
|
|
|
double rWidth;
|
|
|
|
|
|
double rHeight;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
};
|