clement 发表于 2004-5-23 12:18:00

[求助]平面上点坐标顺时针排序问题

平面上有n+1(n为自然数)个点的坐标
定义二维数组如下
Dim vntPts(0 to n,0 to 2)
第一维为点的序号
第二维为点的x,y,z坐标,且z坐标始终为0
请问:如何对这个数组进行排序,使其对应的坐标序列在平面上按照顺时针分布?

雪山飞狐_lzh 发表于 2004-5-23 13:01:00

Values是点到中点的角度数组Points 是点数组
Private Sub SortPoint(ByRef Values As Variant, ByRef Points As Variant, ByVal Count As Integer)
Dim pTemp As Double, pnt As Variant
For i = Count To 1 Step -1
       For j = 0 To i - 1
               If Values(j) > Values(j + 1) Then
                     pTemp = Values(j + 1)
                     Values(j + 1) = Values(j)
                     Values(j) = pTemp
                     pnt = Points(j + 1)
                     Points(j + 1) = Points(j)
                     Points(j) = pnt
               End If
       Next j
Next i
End Sub

clement 发表于 2004-5-23 17:32:00

多谢赐复,感觉上面的方法有一个很重要的条件是要知道"中心"的位置.
还请问这个位置能否通过那些点的坐标算出呢?要不然角度数组也就无从谈起了.

雪山飞狐_lzh 发表于 2004-5-23 17:45:00

应该可以通过各点的XY轴坐标的算术平均值求得吧

clement 发表于 2004-5-23 18:04:00

多谢,偶去试试!

dchlmz 发表于 2007-1-10 16:36:00

这个是不是对所有的形状的坐标有效呀?
页: [1]
查看完整版本: [求助]平面上点坐标顺时针排序问题