曲线拟合-B样条曲线(BCB实现)
来源:互联网 发布:阿里云ubuntu镜像下载 编辑:程序博客网 时间:2024/05/16 12:25
源代码如下:
static float x[n+1]={0,50,100,150,200,250,300,350,400};
static float y[n+1]={0,60,60,80,-100,0,80,-40,80};
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int gmode,errorcode;
int x0,y0,x1,y1,k,j;
float X,Y; float u;
Form1->Canvas->Pen->Color = RGB(250,0,0); //绘制折线
Form1->Canvas->MoveTo(x[0],-y[0]+100);
for(k=1;k<=n;k++)
{
Form1->Canvas->LineTo(x[k],-y[k]+100);
}
Form1->Canvas->Pen->Color = RGB(0,250,255);
for(k=0;k<=n-2;k++) //绘制B样曲线
{
X=(x[k]+x[k+1])/2;
Y=(y[k]+y[k+1])/2;
Form1->Canvas->MoveTo(X,-Y+100);
u=0.0;
for(j=1;j<=m;j++)
{
u=u+1.0/m;
X=u*u/2*(x[k]-2*x[k+1]+x[k+2])+u*(x[k+1]-x[k])+(x[k]+x[k+1])/2;
Y=u*u/2*(y[k]-2*y[k+1]+y[k+2])+u*(y[k+1]-y[k])+(y[k]+y[k+1])/2;
Form1->Canvas->LineTo(X,-Y+100);
}
}
}
//---------------------------------------------------------------------------
- 曲线拟合-B样条曲线(BCB实现)
- 曲线拟合-B样条曲线(BCB实现)
- B样条曲线拟合原理
- B样条曲线
- B样条曲线
- B样条曲线
- B样条曲线
- B样条曲线
- B样条曲线
- B样条曲线
- 三次B样条曲线拟合算法
- B-样条曲线:开曲线
- B-样条曲线:闭曲线
- 曲线平滑-B样条曲线
- B-样条曲线:定义
- B-样条曲线:特例
- 绘制B样条曲线
- [图形学] B样条曲线
- Symmetric NAT and It’s Problems
- Lambdas, auto, and static_assert: C++0x Features in VC10, Part 1
- 列存储、行存储
- 函数式编程
- mysql的备份、导入、以及导出命令
- 曲线拟合-B样条曲线(BCB实现)
- 关于MSCOMM控件的一些说明
- 转 Android 亲测源码分享
- CEGUI文本渲染(二)
- SQLServer语法 20130226
- TEST
- Android JSON
- 如何自己定制oracle instant client
- 大型门户网站静态化解决方案