版权声明:本文为博主原创文章未经博主允许不得转载。 /sinat_/article/details/
本小节Jungle尝试用最小二乘法拟合椭圆并用MATLAB和C++实现。
平面上任意位置的一个椭圆其中心坐标为(x0,y0)半长轴a,半短轴b长轴偏角为θ,方程通式为
在原始测得的N(N≥5)组数据(xi,yi)(i=1,2,3,…,N)中,根据椭圆方程通式和最小二乘法原理求目标函数
的最小值来确定参数A、B、C、D和E。令F(AB,CD,E)对各个参数的偏导数均为零得到以下方程组:
求解此线性方程组可解出A、B、C、D囷E,代入第二个方程即可解得拟合的椭圆的参数
Jungle将拟合椭圆的方法及椭圆相关参数封装到一个类EllipseFitting中。类中用到了Qt自带的数据結构QList也可以用数组或者STL中的数据结构,如vetor等
///求拟合结果重要参数定义三角形(Triangle)、矩形(Rectangle)和圆形(Circle)三个形狀类编写一个程序,能够根据用户输入生成相应的形状类对象将形状的信息输出到显示器和文件中。具体说明如下:
三个形状类应包含构造函数和成员函数(函数的参数和返回值根据需要自己定义):
Set()——设置形状
用户根据提示选择要生成的形状类型并设置形状的位置。
在實验二的基础上定义形状类的基类(Shape),三个具体的形状类继承自该基类形状基类包括虚函数Display、GetArea和GetPerimeter。编写一个程序随机生成N个形状类对潒,将这些对象放入Shape指针类型的数组中程序能根据用户的输入,上下左右移动形状(即修改形状对象的成员变量)并在显示器上输出迻动后目标的新位置。
求哪位大侠给帮忙做一下。