回 帖 发 新 帖 刷新版面

主题:请教合并数据点坐标问题

1, -67.491997, -88, 0
     2, -67.491997, -88, 1.5
     3, -69.172997, -88, 3.8
     6, -70.819, -132, 0
     7, -70.819, -132, 1.5
     8, -69.954002, -176, 0.377
    10, -72.117996, -132, 3.8
    11, -25.166559, -175.699997, 19.081392
    12, -61.401001, -33, 3.8
    13, -31.006001, -121, 34.115002
    14, -66.811996, 88, 0
    15, 67.491997, -88, 0
    16, -66.811996, 88, 1.5
    17, -56.536999, -77, 32.513
    18, -30.978001, -99, 34.744999
    19, -56.833, -121, 34.290001
    20, -82.8434908, -22, 24.10877
    21, -85.554001, -77, 26.818001
    22, -82.3631746, -22, 24.252422
    23, -30.923, -143, 33.387001
    24, -30.856001, -77, 35.266998
    25, -45.482635, -175.699997, 10.64
    26, -25.166559, -176.300003, 19.081392
    27, -30.423, -187, 31.677999
    28, -63.326, -55, 3.8
。。。。。。。。。。。。。。。。
像这样100万组数据,怎么样编写个程序,使得两个点之间的距离小于0.3,赋值成相同的点,各位大侠能帮忙写写么,刚开始学,但是继续结果,谢谢各位

回复列表 (共2个回复)

沙发

这是一个很矛盾的问题。

假设有 3 个点 a b c ,各自相距 0.29 那么怎么合并?a 和 b 先合并,合并以后算哪个点的坐标,a 和 b 中心点坐标? c 怎么办?a b 的中心点和 c 的距离超过 0.3了,可是 b 和 c 只差 0.29 ?

合,还是不合?是个问题。

我觉得你不如换个思路。

首先找出最小最大的 X ,Y ,得到一个区域。

将这个区域划分为 M*N 个 0.3*0.3 的小网格。

Do i = 1 , m
  Do j = 1 , n
    落在这个 0.3*0.3 之内小网格内的数据点取平均
  end do
end do

这样100万个数据,最后合并剩下 m*n 个数据。

板凳


从第一行开始读取,循环一遍,和第一个点间距小于0.3的,使其等于第一个点左边,然后再从第二行开始读取循环,您看这样的话,要怎么编写,谢谢您

我来回复

您尚未登录,请登录后再回复。点此登录或注册