📄 mgardner.cpp
字号:
//---------------------------------------------------------------------------
#pragma hdrstop
#include "MGardner.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
void __fastcall MGardner::OffPointUpdate(PtComplex Point)
{
y[1].re=Point.re;
y[1].im=Point.im;
}
void __fastcall MGardner::OnPointUpdate(PtComplex Point)
{
y[0].re=y[2].re;
y[0].im=y[2].im;
y[2].re=Point.re;
y[2].im=Point.im;
PtComplex mid;
mid.re=0.5*(y[2].re+y[0].re);
mid.im=0.5*(y[2].im+y[0].im);
double e=((y[0].re-y[2].re)*(y[1].re-mid.re))+((y[0].im-y[2].im)*(y[1].im-mid.im));
AveSum-=AveBuff[AveBuffPtr];
AveBuff[AveBuffPtr]=e;
AveSum+=AveBuff[AveBuffPtr];
AveBuffPtr++;AveBuffPtr%=AveBuff.size();
GardError=AveSum/AveBuff.size();
if(AveSum>0)GardShift=GARDSHIFT;
else GardShift=-GARDSHIFT;
//Optional to stop moterboating if buffersize is big
//for(int i=0;i<AveBuff.size();i++)AveBuff[i]-=GardShift;
//AveSum-=GardShift*AveBuff.size();
}
__fastcall MGardner::MGardner()
{
AveBuff.resize(32);
AveBuffPtr=0;
AveSum=0.0;
for(unsigned int i=0;i<AveBuff.size();i++)AveBuff[i]=0.0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -