比较两个点的大小

对一个点集进行排序,需要首先确定序规则

一个比较方便的规则是: 顺序比较两个点的坐标值,如果一个点的坐标值比另一个点的相应坐标小,那么就说这个点比另一个点小。

比如,有P1(x1, y1) 和P2(x2,y2)两个点,顺序比较 x值和y值,如果x1<x2, 则P1<p2;如果x1>x2, 则P1>p2;如果x1=x2,继续比较y值,直到比较出大小为止。如果两点的坐标值都相等,则 规定 P1<p2。对于n维点也可以这样比较。

下面是粗略的C代码:

 1 int isLess(float* p1, float* p2, int n)
 2 {
 3     int i;
 4     for(i=0;i<n;p1++,p2++)
 5     {
 6         if(*p2>*p1)
 7             return 1;
 8     }
 9     return 0;
10 }
11 
12 int main()
13 {
14     float p1[]={1.1,2.3,4.1};
15     float p2[]={1.1,2.4,4.1};
16     printf("%d\n",isLess(p1,p2,3));
17     return 0;
18 }

 

 

posted @ 2013-09-17 22:03  大馋猫  阅读(1003)  评论(0编辑  收藏  举报