![]() |
【转帖】求助:关于三维点排序 - 精华帖集合
求助:关于三维点排序 - 精华帖集合
www.dimcax.com 求助:关于三维点排序 有一个三维点集,要将里面的三维点首先按x从小到大排序,若x相同,则按y从小到大排序,如果x,y均相同,则还 z从小到大排序,请大家帮帮忙,有源码最好了,小弟查了很久,没有解决, 比较简单的排序方法嘛,,任何一本讲语言基础的书都会有,,可以参考起泡法排序的代码,google一下拉,无非也就是比它多了两个条件嘛 cloudlove 这问题让我怀念起lisp来了,visual lisp做这个很拿手。 不过.net也不弱呀,把那些点变成array,然后用array.sort(t)(t[], comparison(t)) 处理一下应该就可以了,排序算法这种很成熟的东西,何必自己写呢 list<point3d> pts=new list<point3d>; pts.sort(delegate(point3d pt1,point3d pt2){return pt1.x.compareto(pt2.x);});//按x从小到大排序 再比较x相同的,按y排序。。。 list<point3d> pts = new list<point3d>(); pts.add(new point3d(5, 0, 0)); pts.add(new point3d(1, 1, 2)); pts.add(new point3d(1, 2, 3)); pts.add(new point3d(2, 2, 0)); pts.sort( delegate(point3d p1, point3d p2) { return (p1.x == p2.x) ? ((p1.y == p2.y) ? p1.z.compareto(p2.z) : p1.y.compareto(p2.y)) : p1.x.compareto(p2.x); }); |
所有的时间均为北京时间。 现在的时间是 07:05 AM. |