python - 两点之间的等距点?

标签 python numpy lerp linspace

我想知道两点之间的等距点。 例如:

p1 = (1,1)
p2 = (5,5)

我期待的答案是:

def getEquidistantPoints(p1, p2, HowManyParts):
    #some code
    return (array with points)

在这个例子中,p1,和p2:

A = getEquidistantPoints(p1,p2,4)
A = [(1,1),(2,2),(3,3),(4,4),(5,5)]

永远是一条直线。 HowManyParts 在这种情况下是被划分的整个距离
类似于 numpy.linspace() 但在二维中。

最佳答案

由于连接两点的线的线性,您可以简单地使用numpy.linspace对于每个维度独立:

import numpy

def getEquidistantPoints(p1, p2, parts):
    return zip(numpy.linspace(p1[0], p2[0], parts+1),
               numpy.linspace(p1[1], p2[1], parts+1))

例如:

>>> list(getEquidistantPoints((1,1), (5,5), 4))
>>> [(1.0, 1.0), (2.0, 2.0), (3.0, 3.0), (4.0, 4.0), (5.0, 5.0)]

关于python - 两点之间的等距点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47443037/

相关文章:

python - 将 Voronoi 图单元格区域转换为像素坐标列表

python - 在 Pandas 中将两列文本与 NaN 结合起来

python - 根据来自不同数据框的两列条件乘以列?

c# - 如何将 lerp 转换为三次缓动?

python - 多个海龟,多个随机移动

python - 如何在 Python 中创建一个 trie

c# - 将 MoveTowards 与持续时间而不是速度一起使用

x86-64 - 带有 SSE 的 8 位 LERP

python - 如何 "unfinalize"图表?

python - 函数装饰器包装后如何获取函数的原始名称?