时间:4、5班:10月22 , 6班:10月24
时间:4、5班:11月12 , 6班:11月14
时间:4、5班:11月19 , 6班:11月21
时间:4、5班:12月3 , 6班:12月5
时间:4、5班:12月17 , 6班:12月19
数字高程模型
实验报告
20##年 06 月 12 日
一、 实验名称
离散点最小凸包的生成
二、实验目的
1. 理解离散点最小凸包的生成的原理;
2.利用C#代码实现离散点最小凸包的生成;
三、部分代码及结果图
图3.1 计算最小凸包调用
图3.2 函数调用
private void primary(List<Point> aapoints,List<Point> minpoints)
{
int i;
int j = 0;
for (i = 0; i < aapoints.Count; i++)
{
if ((aapoints[i].X + aapoints[i].Y) < (aapoints[j].X + aapoints[j].Y))
{ j = i; }
}
minpoints.Add(aapoints[j]); //min(X+Y)
for (i = 0; i < aapoints.Count; i++)
{
if ((aapoints[i].X - aapoints[i].Y) < (aapoints[j].X - aapoints[j].Y))
{ j = i; }
}
minpoints.Add(aapoints[j]); //min(X-Y)
for (i = 0; i < aapoints.Count; i++)
{
if ((aapoints[i].X + aapoints[i].Y) > (aapoints[j].X + aapoints[j].Y))
{ j = i; }
}
minpoints.Add(aapoints[j]); //max(X+Y)
for (i = 0; i < aapoints.Count; i++)
{
if ((aapoints[i].X - aapoints[i].Y) > (aapoints[j].X - aapoints[j].Y))
{ j = i; }
}
minpoints.Add(aapoints[j]); //max(X-Y)
}
private void delete1(List<Point> fistpoint,List<Point> minpoints)
{
aim = 0;
int mm = 1;
int count = 0;
for (int i = 0; i < fistpoint.Count;)
{
for (int j = 0; j < minpoints.Count; j++)
{
if (j ==(minpoints.Count - 1))
{ judge5(minpoints[minpoints.Count-1],minpoints[0], fistpoint[i]); }
else
{ judge5(minpoints[j], minpoints[j+1], fistpoint[i]); }
if (aim == mm)
{ count++; aim = 0; }
}
if (count == minpoints.Count)
{
fistpoint.Remove(fistpoint[i]);
}
else
i++;
count = 0;
}
}
private void delete2(List<Point> fistpoint, List<Point> minpoints)
{
int mm = 3;
int nn = 3;
int pp = 3;
for (int j = 0; j < minpoints.Count;j++)
{
for (int i = 0; i < fistpoint.Count; i++)
{
for (int k = j - 1; k <= j + 1; k++)
{
aim = 2;
if ( k== -1)
{ judge5(minpoints[minpoints.Count - 1], minpoints[0], fistpoint[i]); }
else if (k == minpoints.Count-1)
{ judge5(minpoints[minpoints.Count - 1], minpoints[0], fistpoint[i]); }
else if (k == minpoints.Count )
{ judge5(minpoints[0], minpoints[1], fistpoint[i]); }
else
{ judge5(minpoints[k], minpoints[k + 1], fistpoint[i]); }
if (k == (j - 1)) mm = aim;
if (k == j) nn = aim;
if (k == (j + 1)) pp = aim;
}
if ((mm == 1) && (nn == 0) && (pp == 1))
{
minpoints.Add(fistpoint[i]);
for (int xx = MinPoints.Count - 1; xx > j; xx--)
{
MinPoints[xx] = MinPoints[xx-1];
}
MinPoints[j + 1] = fistpoint[i];
continue;
}
else if (((mm == 1) && (nn == 0) && (pp == 0)) || (mm == 0) && (nn == 0) && (pp == 1))
{
MinPoints[j+1] = fistpoint[i];
continue;
}
}
mm=nn=pp=3;
}
}
上述确定最基础多边形后,调用delete1和delete2函数,最后得到结果图,如下图3.3
图3.3 最下凸包生成图
研究生实验报告范本实验课程实验名称实验地点学生姓名学号指导教师范本实验时间年月日一实验目的熟悉电阻型气体传感器结构及工作原理进行基…
学生实验报告书实验课程名称开课学院指导教师姓名学生姓名学生专业班级200200学年第学期实验教学管理基本规范实验是培养学生动手能力…
AMT执行机构实验报告实验对象NJ7150变速箱总成实验内容第四代选换档执行机构高低温实验报告人审核批准报告时间20xx苏州绿控传…
“挑战杯”第三届大学生创业计划大赛工作总结“挑战杯”双创工程之创业计划大赛是面向全国青年的第三届青年创业计划大赛,大赛以提高大学生…
“安全生产周”活动总结通过这次对安全知识系统的学习,对安全工作有了进一步的理解,提高了安全工作的基本理论知识。对此,主要有以下几点…
答题技巧1、所有题一个原则——安全,因此怎么做安全就怎么做,遇到题目中有安全两个字的判断题都对,选择题答案中有安全二字的是正确答案…
面试时,有几个问题是面试人员常常会提出的,针对这些问题好好准备,在面试时也就不会哑口无言,无言以对了,现在找工作,得面试。面试技巧…
1、如何上好篮球选修课?不知不觉,学习篮球课已经有两年了。在这一年的学习过程中,我不仅学到了许多有用的篮球技巧,还通过进行篮球运动…