欢迎来到天天文库
浏览记录
ID:42016947
大小:93.00 KB
页数:7页
时间:2019-09-06
《计算几何实验报告模板》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算几何实验报告学院名称计算机科学与技术专业计算机科学与技术学生姓名学号3011216032年班级2011级二班2013年5月28日一、问题描述;任给一个点集合,找到距离最近的一对点二、算法的设计思路;根据题意可得,主要思想是首先构思一个坐标系,任意随机的输入n个点的坐标,然后计算这n个点两两之间的距离,将得到的结果保存在一个数组中。然后通过得到最小距离,将这个最短距离连同这个最短距离所表示的两个点的坐标一并输出。三、算法的性能分析;四、实验结果;■C:UsersCaicaiDesktopUntitledl.exe请输入你要输人的点的
2、个数:4请输入你需要输入的点:11222378最短的距离是:1这两点的坐标分别是:〈2.3〉<2,2〉请按任意键继续••・五、关键算法的代码;#inc丨ude#inc丨udeusingnamespacestd;struetnode{doubIex;doubIey;};doubIecaIcuIate(nodenodel,nodenode2){doubIexO;doubIeyO;x0=(nodel・x~node2・x)*(nodel・x~node2・x);y0=(nodel・y-node2・y)*(nodel・
3、y-node2・y);doubIejieguo;returnjieguo二sqrt(xO+yO);}intmain(){intn;cout«zz请输入你要输入的点的个数:"<〈endl;cin»n;cout«z,请输入你需要输入的点:,z«endl;nodenear[2];nodeaIInode[200];nodenow;doubIeIength二0;for(inti二0;i<2;i++){cin»near[i].x;cin>>near[i].y;aIInode[i]・x=near[i].x;aIInode[i]•y二near[i].y;}I
4、ength二caIcuIate(near[0],near[1]);for(intn-2;m二Iength)continue;eIse{Iength二Iengthnow;near[0]=aIInode[m];near[1]二alInodeLi];}}}cout«"最
5、短的距离是:"《endl;cout«Iength«endI;cout«z,这两点的坐标分别是:"<6、主要是计算两个不同颜色的点的处标,然后计算最短距离。本题与第一次作业有一定的相似度。首先,输入其屮一组A屮所有点的坐标,然后再输入另一纟flB的坐标。然后把这两个分组的不同结果保存在两个数组中。分别每次从其中的一个组中取出一个数,与另一组中计算距离,以此类推。然后把计算出的所有的距离保存在一个新的数组中,如果距离小于原数组中的值,则替换;否则不替换。最后输出该结果,同时输出这个最短距离所对应的两个点的坐标。三.算法性能分析:该算法主要用到了基本的二维数组的建立以及最后用到的排序或者代换,缺点在于如果采用代换的话,出现在两个区的距离如果是相等的7、悄况,这吋候只能输出以及结果,会造成结果输出的错谋。四.算法代码:#ineludeusingnamespacestd;intmain()cout«”你所耍输入的红色的点、和蓝色的点、的个数为:”;cout«endl;intn;cin»n;〃此段程序川来得到n个红色的点的坐标for(intz=O;z<1;z++){coutvV”请输入红色的点的坐标:”;cout«endl;intm;floati,j;intp=0;floatredlllOOJ;〃保存红点的横处标floatred2l!00J;〃保存红点的纵坐标for(m=0;8、m
6、主要是计算两个不同颜色的点的处标,然后计算最短距离。本题与第一次作业有一定的相似度。首先,输入其屮一组A屮所有点的坐标,然后再输入另一纟flB的坐标。然后把这两个分组的不同结果保存在两个数组中。分别每次从其中的一个组中取出一个数,与另一组中计算距离,以此类推。然后把计算出的所有的距离保存在一个新的数组中,如果距离小于原数组中的值,则替换;否则不替换。最后输出该结果,同时输出这个最短距离所对应的两个点的坐标。三.算法性能分析:该算法主要用到了基本的二维数组的建立以及最后用到的排序或者代换,缺点在于如果采用代换的话,出现在两个区的距离如果是相等的
7、悄况,这吋候只能输出以及结果,会造成结果输出的错谋。四.算法代码:#ineludeusingnamespacestd;intmain()cout«”你所耍输入的红色的点、和蓝色的点、的个数为:”;cout«endl;intn;cin»n;〃此段程序川来得到n个红色的点的坐标for(intz=O;z<1;z++){coutvV”请输入红色的点的坐标:”;cout«endl;intm;floati,j;intp=0;floatredlllOOJ;〃保存红点的横处标floatred2l!00J;〃保存红点的纵坐标for(m=0;
8、m
此文档下载收益归作者所有