小编Som*_*ody的帖子

将点映射到斐波那契格子上最近的点

我使用以下代码生成斐波那契格子,单位球体请参见第 4 页。我认为代码工作正常。接下来,我有一个点列表(以弧度为单位指定纬度和经度,就像生成的斐波那契晶格点一样)。对于每个点,我想找到斐波那契格子上最近点的索引。即我已经latitude并且longitude想要得到i。我该怎么做?

我特别不想迭代晶格中的所有点并找到距离最小的点,因为在实践中我生成的不仅仅是点,而且如果可能的50话,我不希望运行时间如此。O(n*m)O(m)

FWIW,当谈论距离时,我的意思是半正矢距离

#!/usr/bin/env python2

import math
import sys

n = 50
phi = (math.sqrt(5.0) + 1.0) / 2.0
phi_inv = phi - 1.0
ga = 2.0 * phi_inv * math.pi

for i in xrange(-n, n + 1):
    longitude = ga * i
    longitude = (longitude % phi) - phi if longitude < 0 else longitude % phi
    latitude = math.asin(2.0 * …
Run Code Online (Sandbox Code Playgroud)

python math 3d reverse coordinates

5
推荐指数
1
解决办法
783
查看次数

标签 统计

3d ×1

coordinates ×1

math ×1

python ×1

reverse ×1