小编Sae*_*bin的帖子

在Python中找到3D中给定点的最近点的最快方法

因此,假设我在A中有10,000个点,在B中有10,000个点,并且想要找出每个B点中A中最接近的点.

目前,我只是循环遍历B和A中的每个点,以找出哪个距离最近.即.

B = [(.5, 1, 1), (1, .1, 1), (1, 1, .2)]
A = [(1, 1, .3), (1, 0, 1), (.4, 1, 1)]
C = {}
for bp in B:
   closestDist = -1
   for ap in A:
      dist = sum(((bp[0]-ap[0])**2, (bp[1]-ap[1])**2, (bp[2]-ap[2])**2))
      if(closestDist > dist or closestDist == -1):
         C[bp] = ap
         closestDist = dist
print C
Run Code Online (Sandbox Code Playgroud)

但是,我确信有更快的方法来做到这一点......任何想法?

python distance points closest

10
推荐指数
1
解决办法
5776
查看次数

基于距另一点的距离在贝塞尔曲线上找到点

因此,我有一个3D立方贝塞尔曲线和沿曲线任意位置找到的起点,需要找到曲线下方的第二个点,即距离第一个点的特定世界空间距离(不是弧长距离).

另一个问题是,如果第二个点到达曲线的末端并且仍然不在所需的世界空间距离,在这种情况下,我希望它沿着切线继续直到达到距离.

有任何想法吗?

3d bezier distance spline

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

Python,将索引列表转换为切片

所以我有一个索引列表,

[0, 1, 2, 3, 5, 7, 8, 10]
Run Code Online (Sandbox Code Playgroud)

并希望将其转换为此,

[[0, 3], [5], [7, 8], [10]]
Run Code Online (Sandbox Code Playgroud)

这将在大量指数上运行.

此外,这在技术上不适用于python中的切片,与给定单个ID相比,我使用的工具在给定范围时更快.

该模式基于在一个范围内,就像切片在python中工作一样.因此在示例中,1和2被删除,因为它们已经包含在0到3的范围内.5需要单独访问,因为它不在范围内等等.当大量id时,这更有用包含在[0,5000]等范围内.

python list range slice

4
推荐指数
1
解决办法
1793
查看次数

标签 统计

distance ×2

python ×2

3d ×1

bezier ×1

closest ×1

list ×1

points ×1

range ×1

slice ×1

spline ×1