资源简介
利用道格拉斯普克法实现GIS压缩算法,处理效率高,考虑全面
代码片段和文件信息
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.Collections;
namespace 道格拉斯_普克法
{
public partial class Form1 : Form
{
struct Point
{
internal double X;
internal double Y;
internal int index;
};
ArrayList myPoint = new ArrayList(); //矢量点集
ArrayList newPoint = new ArrayList(); //压缩后点集
ArrayList inferPOint = new ArrayList(); //特征点集
public Form1()
{
InitializeComponent();
}
int i = 0;
private void pictureBox1_MouseDown(object sender MouseEventArgs e)
{
Point temp = new Point();
if (e.Button == MouseButtons.Left)
{
temp.X = e.X;
temp.Y = e.Y;
temp.index = i;
myPoint.Add(temp);
}
Graphics g = pictureBox1.CreateGraphics();
SolidBrush sb = new SolidBrush(Color.Black);
Pen mypen = new Pen(sb 2f);
g.DrawLine(mypen (int)temp.X (int)temp.Y (int)temp.X + 3 (int)temp.Y);
mypen.Dispose();
sb.Dispose();
i++;
}
//压缩算法
private void button1_Click(object sender EventArgs e)
{
//由起点和终点建立直线方程Ax+By+C=0
//直线方程参数
object o=myPoint[0];
Point startPoint = (Point)o;
o = myPoint[myPoint.Count - 1];
Point endPoint = (Point)o;
newPoint.Add(startPoint);
double A = (startPoint.Y - endPoint.Y) / (Math.Pow((endPoint.Y - startPoint.Y) 2) + Math.Pow((endPoint.X - startPoint.X) 2));
double B = (endPoint.X - startPoint.X) / (Math.Pow((endPoint.Y - startPoint.Y) 2) + Math.Pow((endPoint.X - startPoint.X) 2));
double C = (startPoint.X * endPoint.Y - endPoint.X * startPoint.Y) / (Math.Pow((endPoint.Y - startPoint.Y) 2) + Math.Pow((endPoint.X - startPoint.X) 2));
//求曲线上各点到弦线的距离
double ε = 0.1; //阀值
bool Q;
double maxdh = 0;
Point maxPoint = new Point(); //记录距离最大点(中间特征点)
Point maxPoint1 = new Point(); //临时距离最大点
foreach (object o1 in myPoint)
{
double dh;
Point temp = (Point)o1;
dh = Math.Abs(A * temp.X + B * temp.Y + C);
if (maxdh < dh)
{
maxdh = dh;
maxPoint1 = temp;
}
}
if (maxdh <= ε)
{
Q = false;
}
else
{
Q = true;
maxPoint = maxPoint1;
endPoint = maxPoint;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2010-10-29 23:59 道格拉斯—普克法\
目录 0 2010-10-29 23:59 道格拉斯—普克法\道格拉斯—普克法\
文件 962 2010-10-29 23:59 道格拉斯—普克法\道格拉斯—普克法.sln
文件 16384 2010-12-10 10:47 道格拉斯—普克法\道格拉斯—普克法.suo
目录 0 2010-10-29 23:59 道格拉斯—普克法\道格拉斯—普克法\bin\
目录 0 2010-10-29 23:59 道格拉斯—普克法\道格拉斯—普克法\bin\Debug\
文件 12288 2010-11-01 12:15 道格拉斯—普克法\道格拉斯—普克法\bin\Debug\道格拉斯—普克法.exe
文件 30208 2010-11-01 12:15 道格拉斯—普克法\道格拉斯—普克法\bin\Debug\道格拉斯—普克法.pdb
文件 14328 2010-12-10 10:43 道格拉斯—普克法\道格拉斯—普克法\bin\Debug\道格拉斯—普克法.vshost.exe
文件 490 2007-07-21 01:33 道格拉斯—普克法\道格拉斯—普克法\bin\Debug\道格拉斯—普克法.vshost.exe.manifest
文件 7645 2010-10-30 19:35 道格拉斯—普克法\道格拉斯—普克法\Form1.cs
文件 4974 2010-10-30 19:25 道格拉斯—普克法\道格拉斯—普克法\Form1.Designer.cs
文件 5814 2010-10-30 19:25 道格拉斯—普克法\道格拉斯—普克法\Form1.resx
目录 0 2010-10-29 23:59 道格拉斯—普克法\道格拉斯—普克法\obj\
目录 0 2010-10-29 23:59 道格拉斯—普克法\道格拉斯—普克法\obj\Debug\
目录 0 2010-10-29 23:59 道格拉斯—普克法\道格拉斯—普克法\obj\Debug\TempPE\
文件 180 2010-10-30 19:25 道格拉斯—普克法\道格拉斯—普克法\obj\Debug\道格拉斯_普克法.Form1.resources
文件 180 2010-10-30 00:25 道格拉斯—普克法\道格拉斯—普克法\obj\Debug\道格拉斯_普克法.Properties.Resources.resources
文件 1135 2010-12-10 10:45 道格拉斯—普克法\道格拉斯—普克法\obj\Debug\道格拉斯—普克法.csproj.FileListAbsolute.txt
文件 847 2010-10-30 19:25 道格拉斯—普克法\道格拉斯—普克法\obj\Debug\道格拉斯—普克法.csproj.GenerateResource.Cache
文件 12288 2010-11-01 12:15 道格拉斯—普克法\道格拉斯—普克法\obj\Debug\道格拉斯—普克法.exe
文件 30208 2010-11-01 12:15 道格拉斯—普克法\道格拉斯—普克法\obj\Debug\道格拉斯—普克法.pdb
文件 503 2010-10-29 23:59 道格拉斯—普克法\道格拉斯—普克法\Program.cs
目录 0 2010-10-29 23:59 道格拉斯—普克法\道格拉斯—普克法\Properties\
文件 1404 2010-10-29 23:59 道格拉斯—普克法\道格拉斯—普克法\Properties\AssemblyInfo.cs
文件 2894 2010-10-29 23:59 道格拉斯—普克法\道格拉斯—普克法\Properties\Resources.Designer.cs
文件 5612 2010-10-29 23:59 道格拉斯—普克法\道格拉斯—普克法\Properties\Resources.resx
文件 1107 2010-10-29 23:59 道格拉斯—普克法\道格拉斯—普克法\Properties\Settings.Designer.cs
文件 249 2010-10-29 23:59 道格拉斯—普克法\道格拉斯—普克法\Properties\Settings.settings
文件 3757 2010-10-30 00:25 道格拉斯—普克法\道格拉斯—普克法\道格拉斯—普克法.csproj
- 上一篇:Camera 图像处理原理分析
- 下一篇:软件需求分析报告209821
评论
共有 条评论