gpt4 book ai didi

algorithm - 不改变 x 方向顺序的剪切变换

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:48:48 25 4
gpt4 key购买 nike

给定一组 x 坐标不相等的点,我想计算值 v > 0,这样剪切变换 (x, y) -> (x + v*y, y) 不会改变顺序在 x 方向上。

最佳答案

这并不难。按 x 轴对点进行排序。由于剪切变换的连续性,您只需找到两个连续点(按 x 顺序)不改变顺序的最大值 v 就足够了。让 (x,y) 和 (x',y') 成为您排序中的两个连续点。当 v>0 时,x 坐标变化为 x -> x + vy 和 x' -> x' + vy'。现在 x'>x,你想找到最大的 v 使得 x' + vy' >= x + vy。通过线性,它足以解决

x' + vy' = x + vy

x' - x = vy - vy' = v(y - y')

因此

v = (x' - x)/(y - y')

如果结果为负,则 v 的任何值都去(点向更远的方向移动);如果结果为正,则这是 (x,y), (x',y') 对可以容忍的最大值。现在计算所有连续对的最大值并取其最小值。

请注意,如果 y = y',则 v 变为未定义。在这种情况下,这些点位于 y 轴上的同一点,并且剪切变换不会改变它们的距离。

关于algorithm - 不改变 x 方向顺序的剪切变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5615964/

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