gpt4 book ai didi

python - 缩放 2D 坐标并保持它们的相对欧氏距离不变?

转载 作者:太空狗 更新时间:2023-10-29 22:00:54 26 4
gpt4 key购买 nike

我有一组点,例如:pointA(3302.34,9392.32)、pointB(34322.32,11102.03) 等

我需要对它们进行缩放,以便每个 x 和 y 坐标都在 (0.0 - 1.0) 范围内。我尝试通过首先找到数据集中的最大 x 值 (maximum_x_value) 和该集中最大的 y 值 (minimum_y_value) 来做到这一点。然后我做了以下事情:

pointA.x = (pointA.x - minimum_x_value) / (maximum_x_value - minimum_x_value)
pointA.y = (pointA.y - minimum_y_value) / (maximum_y_value - minimum_y_value)

这改变了相对距离(?),因此使数据对我的目的毫无用处。有没有一种方法可以缩放这些坐标,同时保持它们的相对距离不变?

最佳答案

您需要将 x 值和 y 值缩放相同的量!我建议按两个范围中较大的一个进行缩放(xy)。在伪代码中,你会有类似

scale = max(maximum_x_value - minimum_x_value,
maximum_y_value - minimum_y_value)

然后点之间的所有距离都将按 scale 进行缩放,这就是我假设你要求的,所以如果点 p_1 是点的两倍p_2p_3 相比,在重新缩放之前,它在重新缩放之后也是原来的两倍。您应该能够使用勾股定理很容易地向自己证明这一点。

关于python - 缩放 2D 坐标并保持它们的相对欧氏距离不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2450035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com