|
|
|
|
|
/************************************************************
|
|
|
|
|
|
* @file FNet.h <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* @version 1.0
|
|
|
|
|
|
* @date 2011-2012
|
|
|
|
|
|
************************************************************/
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include <afxtempl.h>
|
|
|
|
|
|
#include "Fpoints.h"
|
|
|
|
|
|
#include "weightdf.h"
|
|
|
|
|
|
#include "Fpointno.h"
|
|
|
|
|
|
#include "FlineLink.h"
|
|
|
|
|
|
|
|
|
|
|
|
/** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵģʽ*/
|
|
|
|
|
|
enum FUN_INTER_MODE
|
|
|
|
|
|
{
|
|
|
|
|
|
REPLACE ,
|
|
|
|
|
|
UNCHANGE,
|
|
|
|
|
|
ACCUMULATE,
|
|
|
|
|
|
MINUS,
|
|
|
|
|
|
AVERAGE,
|
|
|
|
|
|
MAXIMUM,
|
|
|
|
|
|
MINIMUM
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/************************************************************************
|
|
|
|
|
|
C F N E T <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
I.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ(CFunction2D<EFBFBD><EFBFBD>ʽ)<EFBFBD><EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(CFLineLink)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽڵ㣨CFPointLink)
|
|
|
|
|
|
ָ<EFBFBD>빹<EFBFBD>ɣ<EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺ţ<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>(i,j<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>ⲿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺Ŷ<EFBFBD>Ϊ0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>ڲ<EFBFBD>Ϊ<EFBFBD><EFBFBD>Ӧ<EFBFBD>̺š<EFBFBD><EFBFBD><EFBFBD>ͼ
|
|
|
|
|
|
|0
|
|
|
|
|
|
|
|
|
|
|
|
|
----|-|------------- <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD> -10
|
|
|
|
|
|
-10 | |10 <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>
|
|
|
|
|
|
----|-|------------- <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD> 10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 0
|
|
|
|
|
|
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ㲻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|0
|
|
|
|
|
|
|
|
|
|
|
|
|
----|-------------- <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>10
|
|
|
|
|
|
| <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>
|
|
|
|
|
|
----|-------------- <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 0
|
|
|
|
|
|
|
|
|
|
|
|
II.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>裺
|
|
|
|
|
|
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Create(int m, int n, double x0, double y0, double dx, double dy,
|
|
|
|
|
|
CPtrList& outline_list,CPtrList& flt_list)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߺͶϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>total<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m<EFBFBD><EFBFBD>CFLineLink<EFBFBD><EFBFBD>list<EFBFBD><EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>precision, ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>smooth, ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>loopmax,loopmin<EFBFBD>ȣ<EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Play(CPtrList& outline_list,CPtrList& flt_list,CFPoints &m_points)
|
|
|
|
|
|
ͨ<EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD>ɢ<EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SetLink(); <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽڵ㽨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SetLinkFlt(flt_list); <EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SetLink45(); <EFBFBD>жϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CFPoint<EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD>ϲ<EFBFBD><EFBFBD>㣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><EFBFBD>õ<EFBFBD>IsFal = 1
|
|
|
|
|
|
ReadPoint(m_points); <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pInside
|
|
|
|
|
|
Initial(); <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD>㸳ֵ
|
|
|
|
|
|
Iter(0); <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS CFNet : public CGrid
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CFNet(void);
|
|
|
|
|
|
~CFNet(void);
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7>Ч<EFBFBD><D0A7><EFBFBD>㸳ֵ*/
|
|
|
|
|
|
int Initial(void);
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m<EFBFBD><6D>n<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߺͶϲ<CDB6><CFB2><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m_inline[i] */
|
|
|
|
|
|
virtual int Create(int m, int n, double x0, double y0, double dx, double dy,
|
|
|
|
|
|
CPtrList& outline_list, CPtrList* pFltList);
|
|
|
|
|
|
virtual int Create(int numx, int numy, double x0, double y0, double dx, double dy);
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief ͨ<><CDA8><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD>ֵ */
|
|
|
|
|
|
int Play(CFPoints &m_points, CPtrList& outline_list, CPtrList* pFltList);
|
|
|
|
|
|
/** @brief ͨ<><CDA8><EFBFBD>ϲ㣬<CFB2>߽<EFBFBD><DFBD><EFBFBD>CFunction2D<32><44><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD>ֵ*/
|
|
|
|
|
|
int Play( CFunction2D& fun, CPtrList* pFltList = NULL, CPtrList* pOutline_list = NULL);
|
|
|
|
|
|
/** @brief <20><>CFunction2D<32><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>ֵ*/
|
|
|
|
|
|
int Fun2DInterpolation(CFunction2D& fun, FUN_INTER_MODE* pMd = NULL );
|
|
|
|
|
|
/** @brief <20>ɿհ<C9BF><D5B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD>Ѹ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD>ֵ*/
|
|
|
|
|
|
int RepeatInterpolation();
|
|
|
|
|
|
|
|
|
|
|
|
/** @ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>μ<EFBFBD><CEBC><EFBFBD> */
|
|
|
|
|
|
CFNet* Double(CFPoints &m_points, CPtrList& outline_list, CPtrList* pFltList, int IsReadPoint);
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>ֵУ<D6B5><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
int Iter(int ss);
|
|
|
|
|
|
/** @<40><><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD>㣬<EFBFBD><E3A3AC>ֵУ<D6B5><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɢ<EFBFBD><C9A2>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><EFBFBD><CDB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
double IterOne(int ss);
|
|
|
|
|
|
|
|
|
|
|
|
void CreateOther(int tm);
|
|
|
|
|
|
int SetDC(CDC& dc);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void Empty();//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m_inline[i]<5D><><EFBFBD>̺<EFBFBD>m_No<4E><6F>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊj<CEAA>ĵ<EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>(i,j)<29><><EFBFBD>̺<EFBFBD>Ϊm_No<4E>Ľ<EFBFBD><C4BD><EFBFBD>ָ<EFBFBD><D6B8>*/
|
|
|
|
|
|
CFPointLink * Position(int i, int j,int m_No);
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>(i,j)<29>ϵĵ<CFB5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
CFPointLink * Position(int i, int j);
|
|
|
|
|
|
/** @brief <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>Ϊ(i,j)<29>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>н<EFBFBD><D0BD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>Ͷ<EFBFBD>Ӧ<EFBFBD>̺ţ<CCBA><C5A3><EFBFBD>ǰ<EFBFBD>ϲ<EFBFBD><CFB2>ҿ<EFBFBD><D2BF><EFBFBD><EFBFBD>̳<EFBFBD><CCB3>⣬
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>pPointIJ[]<EFBFBD><EFBFBD>__ValueNoIJ[]<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
int Position1(int i, int j);
|
|
|
|
|
|
/** @brief */
|
|
|
|
|
|
CFPointLink * Position2(int i, int j, int dx, int dy);
|
|
|
|
|
|
int PositionLineY(int i, int j1,int j2);
|
|
|
|
|
|
CFLineLink * PositionLine(int i, int j);
|
|
|
|
|
|
|
|
|
|
|
|
/* @brief <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>Ϊ<EFBFBD><CEAA>i,j<><6A><EFBFBD>ϵ<EFBFBD>pPoint<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>̺ŵĽ<C5B5><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
void SetLink(int i, int j, CFPointLink *pPoint, int m_No);
|
|
|
|
|
|
/* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CFPointLink֮<6B>佨<EFBFBD><E4BDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӹ<EFBFBD>ϵ*/
|
|
|
|
|
|
void SetLink();
|
|
|
|
|
|
/* @brief <20>жϸ<D0B6><CFB8><EFBFBD><EFBFBD><EFBFBD>isFal */
|
|
|
|
|
|
void SetLink45();
|
|
|
|
|
|
/** @brief <20>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶϲ<C9B6><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD>ڵ㣬<DAB5><E3A3AC><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD><EFBFBD>ϲ㽨<CFB2><E3BDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD>
|
|
|
|
|
|
<EFBFBD>ٶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>ⲿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ㣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>̺<EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>٣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD>̺<EFBFBD>Ϊ0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ㣬ֻ<EFBFBD>е<EFBFBD><EFBFBD>̺<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)һ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>̽<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
---|-|--------<EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>-m
|
|
|
|
|
|
| |
|
|
|
|
|
|
t3(-m<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t2<EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>m
|
|
|
|
|
|
---+-+------ <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD> m
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t1,<EFBFBD>̺<EFBFBD>Ϊ0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ϊm<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ㣬ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Position<EFBFBD><EFBFBD>i,j,m)<EFBFBD><EFBFBD>Position(i,j+1,m)<EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t1,t2,t3<EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m<EFBFBD>̵ģ<EFBFBD>
|
|
|
|
|
|
<EFBFBD><EFBFBD>ͼt2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>m<EFBFBD>̣<EFBFBD>t1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>̣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t2<EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD>t1 */
|
|
|
|
|
|
void SetLinkFlt(CPtrList* pFltList);
|
|
|
|
|
|
void SetLinkOther();
|
|
|
|
|
|
void SetLinkOther1();
|
|
|
|
|
|
/** @brief <20><>t1,t2<74><32><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD>t2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t1<74><31>d<EFBFBD><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
void LinkTwoPoint(CFPointLink* t1, CFPointLink* t2, int d);
|
|
|
|
|
|
|
|
|
|
|
|
void GetPoint(CFPointLink * t, int& i, int& j, int& no);
|
|
|
|
|
|
/* @brief <20><>points<74>ж<EFBFBD>ȡɢ<C8A1><C9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
int ReadPoint(CFPoints &points);
|
|
|
|
|
|
void WriteMesh(FILE* fw);
|
|
|
|
|
|
void WriteMesh(CString m_output);
|
|
|
|
|
|
void WriteLine(FILE *fw);
|
|
|
|
|
|
void WriteLine(CString m_output);
|
|
|
|
|
|
void WritePointMaxError(CString m_error);
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CFunction2D<32><44>ʽ*/
|
|
|
|
|
|
void Write(CFile& fw);
|
|
|
|
|
|
void Write(CString m_output);
|
|
|
|
|
|
/** @brief <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>Zֵ<5A><D6B5>Χ*/
|
|
|
|
|
|
bool GetRange();
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>CFunction2D<32><44>ʽ wcw*/
|
|
|
|
|
|
void WriteGrid(CFunction2D& fun);
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD>CFunction2D<32><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> wcw*/
|
|
|
|
|
|
void ReadFromGrid(CFunction2D& fun);
|
|
|
|
|
|
|
|
|
|
|
|
CFPointLink* AddLineOnePoint(int i, int j, int m_no,int tm);
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
_int32 total; //<2F><><EFBFBD>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|
|
|
|
|
CFPointLink* pPoints; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
/* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,m_inline[i]<5D><>ʾ<EFBFBD><CABE>i<EFBFBD>д<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飬<EFBFBD><E9A3AC><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD>̺<EFBFBD>m_No<4E><6F><EFBFBD><EFBFBD> <20><> */
|
|
|
|
|
|
CList<CFLineLink *,CFLineLink *> *m_inline;
|
|
|
|
|
|
// |0 |
|
|
|
|
|
|
// | 0 <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// |1 |
|
|
|
|
|
|
//m_inline[0] m_inline[1]
|
|
|
|
|
|
|
|
|
|
|
|
CWeightDF w;
|
|
|
|
|
|
int ViewStep;
|
|
|
|
|
|
double weight;
|
|
|
|
|
|
CFPointLink* pPointMaxError;
|
|
|
|
|
|
CString m_error;
|
|
|
|
|
|
int error_no;
|
|
|
|
|
|
int OtherBegin;
|
|
|
|
|
|
|
|
|
|
|
|
long loopmin;
|
|
|
|
|
|
long loopmax;
|
|
|
|
|
|
|
|
|
|
|
|
int IsCreateOther;
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
int Iter(int i1,int j1,int i2,int j2,int ss,int MaxLoop);
|
|
|
|
|
|
double IterOne(int i1,int j1,int i2,int j2,int ss);
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿһ<C3BF><D2BB>pInsideΪ<65>ս<EFBFBD><D5BD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD>ɸ<EFBFBD>pInside<64><65>Ϊ<EFBFBD>յĵ㸳ֵ */
|
|
|
|
|
|
int Initial(CFPointInside &temp);
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD>pInsideΪNULL<4C>Ľ<EFBFBD><C4BD>㸳<EFBFBD><E3B8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ,<2C><>pInsideΪtemp<6D><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>븳<EFBFBD><EBB8B3> */
|
|
|
|
|
|
int InitialEmpty(CFPointInside &temp);
|
|
|
|
|
|
/** @brief<65><66>һ<EFBFBD>ֳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʽ,<2C><>ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pInside<64>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD>ɸ<EFBFBD><C9B8><EFBFBD>pInside<64><65><EFBFBD>㸳ֵ */
|
|
|
|
|
|
int Initial2(CFPointInside &temp);
|
|
|
|
|
|
/** @brief <20>ɶϵ<C9B6><CFB5>߶<EFBFBD>(i1,j1)-(i2,j2)<29><>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>ӹ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
void SetLinkFltXRepeat(double i1, double j1, double i2, double j2,int no) ;
|
|
|
|
|
|
/** @brief <20>ɶϵ<C9B6><CFB5>߶<EFBFBD>(i1,j1)-(i2,j2)<29><>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>̺<EFBFBD>Ϊno<6E>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӹ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
void SetLinkFltYRepeat(double i1, double j1, double i2, double j2,int no) ;
|
|
|
|
|
|
/** @brief <20><><EFBFBD>߶Σ<DFB6>i1,j1<6A><31>- <20><>i2,j2<6A><32><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7>̺<EFBFBD>Ϊ0<CEAA>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
void SetLinkFltX(double i1, double j1, double i2, double j2) ;
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>(i,j<><6A><EFBFBD>̺<EFBFBD>Ϊno<6E>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӹ<EFBFBD>ϵ */
|
|
|
|
|
|
void SetLinkFltX(int i,int j, int no = 0) ;
|
|
|
|
|
|
/** @brief <20><><EFBFBD>߶Σ<DFB6>i1,j1<6A><31>- <20><>i2,j2<6A><32><EFBFBD><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҷ<EFBFBD><D2B7>̺<EFBFBD>Ϊ0<CEAA>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
void SetLinkFltY(double i1, double j1, double i2, double j2) ;
|
|
|
|
|
|
/** @<40><><EFBFBD><EFBFBD>(i,j)<29><><EFBFBD>̺<EFBFBD>Ϊno<6E>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҷ<EFBFBD><D2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӹ<EFBFBD>ϵ*/
|
|
|
|
|
|
void SetLinkFltY(int i,int j, int no = 0) ;
|
|
|
|
|
|
int RepeatCount(CPtrList& flt_list);
|
|
|
|
|
|
/** @brief ͨ<><CDA8><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>m_inline[i]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD><DEB8><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CFLinkLink,
|
|
|
|
|
|
k Ϊ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
void RepeatCreate(CPtrList& flt_list,int &k);
|
|
|
|
|
|
void RepeatOne(CFPointNos &pn,int &k);
|
|
|
|
|
|
void RepeatOne(int i,int j1,int j2,int &k,int no);
|
|
|
|
|
|
void RepeatOne(int i,int j1,int j2,int &k,int no,CFLineLink *line);
|
|
|
|
|
|
/** @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶϲ<DAB6><CFB2>еĶϲ㣬<CFB2>統ǰ<E7B5B1>ϲ<EFBFBD>name<6D><65>ʽΪ<CABD><CEAA><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>a|<7C>ϲ<EFBFBD><CFB2><EFBFBD>b1|<7C>ϲ<EFBFBD>b2<62><32>
|
|
|
|
|
|
<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>a<EFBFBD>ཻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD>b1<EFBFBD><EFBFBD>b2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
void GetCrossNo(char *name);
|
|
|
|
|
|
|
|
|
|
|
|
/** @<40>жϵ<D0B6>ǰ<EFBFBD>ϲ<EFBFBD><CFB2>Ƿ<EFBFBD><C7B7><EFBFBD>m_no<6E><6F><EFBFBD>ཻ<EFBFBD><E0BDBB><EFBFBD><EFBFBD>CrossNo <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>m_no*/
|
|
|
|
|
|
int IsBreak(int m_no);
|
|
|
|
|
|
|
|
|
|
|
|
int * CrossNo; ///< <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼ijһ<C4B3>ϲ<EFBFBD><CFB2>ཻ<EFBFBD><E0BDBB><EFBFBD><EFBFBD><EFBFBD>ڶϲ<DAB6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int CrossNum; ///< <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼ijһ<C4B3>ϲ<EFBFBD><CFB2>ཻ<EFBFBD><E0BDBB><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CFPointLink** pPointIJ; ///< <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼Ŀ<C2BC><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CFLineLink ** pLineIJ; ///< <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼Ŀ<C2BC><C4BF><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int * __ValueNoIJ;///< <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼Ŀ<C2BC><C4BF><EFBFBD>̺<EFBFBD><CCBA><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
CDC* pDC; //pDCָ<43><D6B8>ջ
|
|
|
|
|
|
const double DEFAULT_UPPER_LIMIT_VALUE; //Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
void AFX_EXT_CLASS GetCoefficient();
|
|
|
|
|
|
void AFX_EXT_CLASS GetCoefficient1();
|