C语言判断点面位置关系系统.doc

C语言判断点面位置关系系统.doc

ID:52564102

大小:113.50 KB

页数:11页

时间:2020-03-28

C语言判断点面位置关系系统.doc_第1页
C语言判断点面位置关系系统.doc_第2页
C语言判断点面位置关系系统.doc_第3页
C语言判断点面位置关系系统.doc_第4页
C语言判断点面位置关系系统.doc_第5页
资源描述:

《C语言判断点面位置关系系统.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C语言判断点面位置关系系统一:程序/*此程序适用于任意复杂程度的单连通和复连通多边形区域*/#include#include#defineM36/*给定多边形边数*/floatX[M],Y[M];floatx,y,t,s,Ymin,Ymax,C,D,sn=0,sp=0,xp,yp,l;inti,j=0,k=1;charch[2];voidinput()/*定义输入坐标函数*/{printf("Pleaseinputpointsmadeofarea:");for(i=0;i

2、,&Y[i]);/*从键盘输入围成多边形的顶点坐标*/}printf("Pleaseinputonepoint:");scanf("%f,%f",&x,&y);/*从键盘任意输入一点*/}floatfunc(floatn)/*定义求绝对值的函数*/{if(n>0){returnn;}else{return(-n);}}floatMin(floatm,floatn)/*定义求最小值的函数*/{if(m<=n){returnm;}else{returnn;}}floatMax(floatm,floatn)/*定义求最大值的函数*/{if(m>=n){returnm;}e

3、lse{returnn;}}voidsimplefun()/*定义判断点是否在凸多边形上、内、外函数*/{xp=(X[0]+X[2])/2;/*起点与第三点的中点横坐标*/yp=(Y[0]+Y[2])/2;/*起点与第三点的中点纵坐标*/printf("xp=%ftyp=%f",xp,yp);for(i=0;i

4、]-yp)*(X[M-1]-xp))/2);/*求出凸多边形的总面积并输出*/}}printf("sn=%f",sn);for(i=0;iX[i+1]&&x>X[i+1]&&x

5、

6、(X[i]X[i]&&x

7、eif((X[i]==X[i+1])&&((Y[i]Y[i])

8、

9、(Y[i]>Y[i+1]&&yY[i+1]))){sp=0;/*如果给定点的纵坐标在相邻两点纵坐标之间,并且相邻两点横坐标相等则sp=0,并跳出循环*/break;}elseif(x==X[i]&&y==Y[i]

10、

11、x==X[i+1]&&y==Y[i+1]){sp=0;/*如果给定点的坐标等于相邻两点任意一点的坐标,则sp=0,并跳出循环*/break;}}sp=sp+t;if(i==M-2)/*最后一点的情况必须单独讨论,同上*/{l=fu

12、nc(((X[0]-x)*(Y[M-1]-y)-(Y[0]-y)*(X[M-1]-x))/2);if(l==0){if((X[0]>X[M-1]&&x>X[M-1]&&x

13、

14、(X[0]X[0]&&xY[0])

15、

16、(Y[0]>Y[M-1]&&yY[M-1]))){sp=0;break;}elseif(x==X[0]&&y==Y[0]

17、

18、x==X[M-1]&&y==Y[M-1]

19、){sp=0;break;}}sp=sp+l;/*若前面的if都不执行,则sp就是给定点与各个相邻顶点依次围成的真实的面积之和*/}}/*最终得出结论*/if(sp>sn){printf("Thispoint(%f,%f)isoutoftheregion",x,y);}elseif(sp==sn){printf("Thispoint(%f,%f)isintheregion",x,y);}else{printf("Thispoint(%f,%f)isontheedgeoftheregion",x,y);}printf("Whethertocontinu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。