資源簡介
這是一個(gè)圓擬合器,它能產(chǎn)生隨機(jī)點(diǎn),也能讀取相應(yīng)格式的點(diǎn)數(shù)據(jù)。采用最小二乘法,實(shí)現(xiàn)對任意給定點(diǎn)的圓擬合。使用語言為C#

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Linq;
using?System.Text;
using?System.Windows.Forms;
using?System.IO;
using?System.Diagnostics;
namespace?Circle_Fitting
{
????public?partial?class?Form1?:?Form
????{
????????private?DPoint[]?_Points;???//用來存儲產(chǎn)生的隨機(jī)點(diǎn)坐標(biāo)
????????private?DPoint[]?_OrignalPoints;
????????private?int?_PointNum;?????//產(chǎn)生的隨機(jī)點(diǎn)的個(gè)數(shù)
????????bool?_IsCreatePoint?=?false;???????//隨機(jī)點(diǎn)是否生成成功????
????????bool?_IsFitting?=?false;
????????float?_centerX?_centerY?_R;??//這三個(gè)均是屏幕坐標(biāo)
????????public?Form1()
????????{
????????????InitializeComponent();
????????????_PointNum?=?1000;?????//設(shè)定有1000個(gè)點(diǎn)
????????????_IsCreatePoint?=?false;
????????????_IsFitting?=?false;
????????????_Points?=?new?DPoint[_PointNum];
????????????_OrignalPoints?=?_Points.Clone()?as?DPoint[];
????????????this.openFileDialog1.FileName?=?“文本文檔“;
????????????this.numericUpDownPointNum.Value?=?20;
????????????this.CenterLabel.Text?=?_centerX.ToString()?+?““?+?_centerY.ToString();
????????????this.RadiusLabel.Text?=?_R.ToString();
????????}
????????///?
????????///?通過隨機(jī)函數(shù)產(chǎn)生隨機(jī)點(diǎn)
????????///?
????????private?void?CreateRandomPoints()
????????{
????????????Random?ro?=?new?Random();
????????????for?(int?i?=?0;?i?????????????{
????????????????for?(int?j?=?0;?j?1000;?j++)
????????????????{
????????????????????int?iMin?=?0?iMax?=?500;
????????????????????float?x?=?ro.Next(iMin?iMax)?-?250;
????????????????????float?y?=?ro.Next(iMin?iMax)?-?250;
????????????????????float?dist?=?(float)Math.Sqrt(x?*?x?+?y?*?y);
????????????????????if?(dist?>?150?&&?dist?220)
????????????????????{
????????????????????????_Points[i]?=?new?DPoint(x?y);
????????????????????}
????????????????}
????????????}
????????????_OrignalPoints?=?_Points.Clone()?as?DPoint[];
????????}
????????///?
????????///?坐標(biāo)轉(zhuǎn)換,將實(shí)際坐標(biāo)轉(zhuǎn)成屏幕坐標(biāo)
????????///?
????????private?void?CoordinatesTransformation()
????????{
????????????for(int?i=0;i<_PointNum;i++)
????????????{
????????????????_Points[i].X?+=?250;
????????????????_Points[i].Y?=?-_Points[i].Y?+?250;
????????????}
????????}
????????///?
????????///?最小二乘法,得到圓心坐標(biāo)和半徑三個(gè)數(shù)據(jù)
????????///?
????????private?void?LeastSquareFitting()
????????{
????????????if?(_PointNum?3)
????????????????return;
????????????float?x1?=?0.0f;??//x一次方的初值
????????????float?y1?=?0.0f;
????????????float?x2?=?0.0f;??//x平方的初始值
????????????float?y2?=?0.0f;
????????????float?x3?=?0.0f;??//x立方的初始值
????????????float?y3?=?0.0f;
????????????float?x1y1?=?0.0f;
????????????float?x1y2?=?0.0f;
????????????float?x2y1?=?0.0f;
????????????for?(int?i?=?0;?i?????????????{
????????????????x1?=?x1?+?_Points[i].X;
????????????????y1?=?y1?+?_Points[i].Y;
????????????????x2?=?x2?+?_Points[i].X?*?_Points[i].X;
????????????????y2?=?y2?+?_Points[i]
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????153088??2010-12-11?22:28??Circle-Fitting\Circle?Fitting\Circle?Fitting\bin\Debug\Circle?Fitting.exe
?????文件??????34304??2010-12-11?22:28??Circle-Fitting\Circle?Fitting\Circle?Fitting\bin\Debug\Circle?Fitting.pdb
?????文件??????14328??2010-12-15?19:10??Circle-Fitting\Circle?Fitting\Circle?Fitting\bin\Debug\Circle?Fitting.vshost.exe
?????文件????????490??2007-07-21?01:33??Circle-Fitting\Circle?Fitting\Circle?Fitting\bin\Debug\Circle?Fitting.vshost.exe.manifest
?????文件??????67646??2010-07-05?21:12??Circle-Fitting\Circle?Fitting\Circle?Fitting\bin\Debug\designFloat?copy.ico
?????文件????????856??2010-12-11?21:17??Circle-Fitting\Circle?Fitting\Circle?Fitting\bin\Debug\Help.txt
?????文件????????189??2010-12-11?16:14??Circle-Fitting\Circle?Fitting\Circle?Fitting\bin\Debug\示例數(shù)據(jù).txt
?????文件?????152576??2010-12-11?21:37??Circle-Fitting\Circle?Fitting\Circle?Fitting\bin\Release\Circle?Fitting.exe
?????文件??????32256??2010-12-11?21:37??Circle-Fitting\Circle?Fitting\Circle?Fitting\bin\Release\Circle?Fitting.pdb
?????文件??????14328??2010-12-11?21:38??Circle-Fitting\Circle?Fitting\Circle?Fitting\bin\Release\Circle?Fitting.vshost.exe
?????文件????????490??2007-07-21?01:33??Circle-Fitting\Circle?Fitting\Circle?Fitting\bin\Release\Circle?Fitting.vshost.exe.manifest
?????文件???????3951??2010-12-11?21:44??Circle-Fitting\Circle?Fitting\Circle?Fitting\Circle?Fitting.csproj
?????文件??????67646??2010-12-11?21:36??Circle-Fitting\Circle?Fitting\Circle?Fitting\designFloat?copy.ico
?????文件??????10069??2010-12-11?22:28??Circle-Fitting\Circle?Fitting\Circle?Fitting\Form1.cs
?????文件??????13136??2010-12-11?22:28??Circle-Fitting\Circle?Fitting\Circle?Fitting\Form1.Designer.cs
?????文件?????108192??2010-12-11?22:28??Circle-Fitting\Circle?Fitting\Circle?Fitting\Form1.resx
?????文件???????1055??2010-12-15?19:10??Circle-Fitting\Circle?Fitting\Circle?Fitting\obj\Debug\Circle?Fitting.csproj.FileListAbsolute.txt
?????文件????????847??2010-12-11?22:28??Circle-Fitting\Circle?Fitting\Circle?Fitting\obj\Debug\Circle?Fitting.csproj.GenerateResource.Cache
?????文件?????153088??2010-12-11?22:28??Circle-Fitting\Circle?Fitting\Circle?Fitting\obj\Debug\Circle?Fitting.exe
?????文件??????34304??2010-12-11?22:28??Circle-Fitting\Circle?Fitting\Circle?Fitting\obj\Debug\Circle?Fitting.pdb
?????文件??????68212??2010-12-11?22:28??Circle-Fitting\Circle?Fitting\Circle?Fitting\obj\Debug\Circle_Fitting.Form1.resources
?????文件????????180??2010-12-11?21:44??Circle-Fitting\Circle?Fitting\Circle?Fitting\obj\Debug\Circle_Fitting.Properties.Resources.resources
?????文件????????621??2010-12-11?21:38??Circle-Fitting\Circle?Fitting\Circle?Fitting\obj\Release\Circle?Fitting.csproj.FileListAbsolute.txt
?????文件????????847??2010-12-11?21:37??Circle-Fitting\Circle?Fitting\Circle?Fitting\obj\Release\Circle?Fitting.csproj.GenerateResource.Cache
?????文件?????152576??2010-12-11?21:37??Circle-Fitting\Circle?Fitting\Circle?Fitting\obj\Release\Circle?Fitting.exe
?????文件??????32256??2010-12-11?21:37??Circle-Fitting\Circle?Fitting\Circle?Fitting\obj\Release\Circle?Fitting.pdb
?????文件??????68212??2010-12-11?21:37??Circle-Fitting\Circle?Fitting\Circle?Fitting\obj\Release\Circle_Fitting.Form1.resources
?????文件????????180??2010-12-11?21:36??Circle-Fitting\Circle?Fitting\Circle?Fitting\obj\Release\Circle_Fitting.Properties.Resources.resources
?????文件????????495??2010-12-11?21:44??Circle-Fitting\Circle?Fitting\Circle?Fitting\Program.cs
?????文件???????1366??2010-12-07?19:42??Circle-Fitting\Circle?Fitting\Circle?Fitting\Properties\AssemblyInfo.cs
............此處省略26個(gè)文件信息
評論
共有 條評論