• 大小: 2.19MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-28
  • 语言: 其他
  • 标签: 微机  交通灯  西电  

资源简介

见http://blog.csdn.net/czjxy881/article/details/21228881

资源截图

代码片段和文件信息

// Curvefit.cpp: implementation of the CBezierfit class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include 
#include “Curvefit.h“

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

static double DistanceError(const double *x const double *y const double *Rawdata int n);
static void Bezier(double u const double *a const double *b 
double x4 double y4 double &z double &s);

void CalcBezier(const double *Rawdata int n double *Control)
{
double x[4];
double y[4];
double e1e2 e3;
int Retry;
double x1ax2ay1ay2a;

x[0] = Rawdata[0];
y[0] = Rawdata[1];

x[1] = Rawdata[2];
y[1] = Rawdata[3];

x[2] = Rawdata[n-4];
y[2] = Rawdata[n-3];

x[3] = Rawdata[n-2];
y[3] = Rawdata[n-1];

// seed with linear interpolation...
x[1] += x[1] - x[0];
y[1] += y[1] - y[0];
x[2] += x[2] - x[3];
y[2] += y[2] - y[3];

e1 = DistanceError(x y Rawdata n);
for (Retry = 1; Retry <= 2; Retry++)
{
// TRACE(“Retry %d\n“ Retry);
// TRACE(“      x1       y2       x2       y2    error\n“);
e3 = 0.5;
x1a = x[1];
while (fabs(e3) >= 0.01)
{
x[1] += (x[1] - x[0])*e3;
e2 = DistanceError(x y Rawdata n);
if (e2 == e1)
break;
if (e2 > e1)
{
x[1] = x1a;
e3 /=-3;
}
else
{
e1 = e2;
x1a = x[1];
}
}

e3 = 0.5;
y1a = y[1];
while (fabs(e3) >= 0.01)
{
y[1] += (y[1] - y[0])*e3;
e2 = DistanceError(x y Rawdata n);
if (e2 == e1)
break;
if (e2 > e1)
{
y[1] = y1a;
e3 /=-3;
}
else
{
e1 = e2;
y1a = y[1];
}
}

e3 = 0.5;
x2a = x[2];
while (fabs(e3) >= 0.01)
{
x[2] += (x[2] - x[3])*e3;
e2 = DistanceError(x y Rawdata n);
if (e2 == e1)
break;
if (e2 > e1)
{
x[2] = x2a;
e3 /=-3;
}
else
{
e1 = e2;
x2a = x[2];
}
}

e3 = 0.5;
y2a = y[2];
while (fabs(e3) >= 0.01)
{
y[2] += (y[2] - y[3])*e3;
e2 = DistanceError(x y Rawdata n);
if (e2 == e1)
break;
if (e2 > e1)
{
y[2] = y2a;
e3 /=-3;
}
else
{
e1 = e2;
y2a = y[2];
}
}
} // for

Control[0] = x[1];
Control[1] = y[1];
Control[2] = x[2];
Control[3] = y[2];
}

double DistanceError(const double *x const double *y 
 const double *Rawdata int n)
{
int i;
double a[4];
double b[4];
double u u1 u2;
double z z1 z2 s s1;
double temp;
double totalerror;
double stepsize;
double x4 y4;

totalerror = 0;
a[3] = (x[3]-x[0]+3*(x[1]-x[2]))/8;
b[3] = (y[3]-y[0]+3*(y[1]-y[2]))/8;
a[2] = (x[3]+x[0]-x[1]-x[2])*3/8;
b[2] = (y[3]+y[0]-y[1]-y[2])*3/8;
a[1] = (x[3]-x[0])/2 -a[3];
b[1] = (y[3]-y[0])/2 -b[3];
a[0] = (x[3]+x[0])/2 -a[2];
b[0] = (y[3]+y[0])/2 -b[2];

stepsize = 2.0/(n);
s = u1 = z1 = s1 = 0;
for (i = 2; i 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-03-14 11:36  test\
     目录           0  2014-03-14 11:36  test\test\
     文件        4373  2001-01-23 21:20  test\test\Curvefit.cpp
     文件         504  2000-01-14 15:44  test\test\Curvefit.h
     目录           0  2014-03-14 11:36  test\test\Debug\
     文件       89804  2011-03-09 16:14  test\test\Debug\testDlg.obj
     文件       31261  2014-03-07 11:18  test\test\Digistatic.cpp
     文件        6863  2014-03-07 12:41  test\test\Digistatic.h
     文件        2966  2002-09-03 13:09  test\test\MemDC.h
     文件       36864  2014-03-04 21:09  test\test\PCI9052Dll.dll
     文件         286  2014-03-04 21:09  test\test\PCI9052Dll.h
     文件        3808  2014-03-04 21:09  test\test\PCI9052Dll.lib
     文件        2815  2011-03-09 15:37  test\test\ReadMe.txt
     目录           0  2014-03-14 11:36  test\test\Release\
     文件      129306  2011-03-09 16:13  test\test\Release\testDlg.obj
     文件        2915  2014-03-08 13:11  test\test\Resource.h
     文件        1532  2000-01-21 11:35  test\test\Rgbcolor.h
     目录           0  2014-03-14 11:36  test\test\res\
     文件       45718  2014-03-07 11:07  test\test\res\CrossRoad.bmp
     文件         598  2014-03-07 00:06  test\test\res\GreenLight.bmp
     文件        8958  2014-03-06 23:36  test\test\res\NSGo.bmp
     文件         598  2014-03-07 00:07  test\test\res\RedLight.bmp
     文件        1270  2014-03-06 23:36  test\test\res\Stop.bmp
     文件       12800  2011-03-09 16:11  test\test\res\Thumbs.db
     文件        8958  2014-03-06 23:36  test\test\res\WEGo.bmp
     文件         598  2014-03-07 00:08  test\test\res\YellowLight.bmp
     文件        1270  2014-03-06 23:31  test\test\res\bitmap2.bmp
     文件         566  2014-03-06 23:42  test\test\res\bitmap3.bmp
     文件         822  2014-03-07 16:07  test\test\res\test.bmp
     文件        4286  2014-03-07 16:08  test\test\res\test.ico
     文件         396  2014-03-06 21:41  test\test\res\test.rc2
............此处省略14个文件信息

评论

共有 条评论