乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 34|回复: 1

哪位高手知道点排序函数怎样使用啊?

[复制链接]

110

主题

324

帖子

10

银币

中流砥柱

Rank: 25

铜币
764
发表于 2011-5-3 10:29:00 | 显示全部楼层 |阅读模式
转载自
最终编辑
哪位高手知道点排序函数怎样使用啊?
PList是这样的数据吗?
PList(0 to 7)
PList(0)=123.01:PList(1)=451.0
PList(2)=126.01:PList(3)=411.0
PList(4)=128.01:PList(5)=481.0
PList(6)=144.01:PList(7)=471.0
这样我试验了一下,好像不行吗,请高手指点,谢谢!
函数如下:
'PList是一个点坐标的一维数组,按地址传递
'点排序(x坐标从小到大,y坐标从小到大)
Function DianPaiXu3(ByRef PList() As Variant)
    Dim I As Long
    I = UBound(PList)
    Dim Pmin As Variant
    Dim Temp As Double
    Dim J As Long, K As Long, N As Long, M As Long
    Dim P1 As Variant
    Dim P2 As Variant
    Dim P3 As Variant
    '按x坐标排序
    For J = 0 To I
        For K = J + 1 To I
            P1 = PList(J)
            P2 = PList(K)
            If P1(0) >= P2(0) Then
                P3 = PList(J) '=P1
                PList(J) = PList(K) 'p1=P2
                PList(K) = P3 'P2 = P3
            End If
        Next K
    Next J
    '对x坐标相等的进行y坐标排序
    For J = 0 To I
        For K = 0 To I
            P1 = PList(J)
            P2 = PList(K)
            If P1(0) = P2(0) Then
                If P1(1)  N(0) + N(1) Then
                Temp = PList(J)
                PList(J) = PList(L)
                PList(L) = Temp
            End If
        Next
    Next
End Function

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

pmq

14

主题

61

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
117
发表于 2011-5-4 13:08:00 | 显示全部楼层
'按x坐标排序
    For J = 0 To I-1 step 2
            For K = J + 1 To I step 2
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-30 23:25 , Processed in 1.129260 second(s), 67 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表