You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

240 lines
8.5 KiB
C

1 month ago
/************************************************************
* @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><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();