gpt4 book ai didi

algorithm - 我应该使用什么算法来平滑地缩放图形或 map ?

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

我有一个由函数生成的图形,它会根据函数的值自动放大和缩小。我已经有了绘图工具,我可以以高分辨率显示任何 x、y、宽度、高度。

我试着捕捉到正确的位置:

x = target_x
y = target_y
width = target_width
height = target_height

但它太跳动了。很难说放大/缩小了哪个部分。

我也试过这样做:

orig_x = x //ditto for y, width, height, etc
for i=1 to 10
x = i/10*new_x + i/10*orig_x
wait 25ms

它更流畅,但第一步仍然太跳动了。如果 orig_x 为 10 且 new_x 为 100 万,则第一次跳跃太大,接近 1,000,000%。然而,最后一次跳跃仅为 10%。几何级数更好,但如果我必须在缩放中间切换方向,则步骤会很跳跃。

用什么效果最好?

最佳答案

您想为每个步骤缩放/移动最后一个窗口的固定百分比。这意味着您的变焦将是一条指数曲线,并且您的移动将与您的变焦相关联。像下面这样的东西应该是一个改进:

width_ratio = new_width / old_width
width_ratio_log = log(width_ratio)

x_diff = new_x - old_x
x_factor = x_diff / (width_ratio - 1)
-- warning: need to handle width_ratio near 1 the old way!

for i=1 to steps
width_factor = exp(width_ratio_log * i / steps)
width = old_width * width_factor
x = old_x + x_factor * (width_factor - 1)

-- similarly for y and height...

关于algorithm - 我应该使用什么算法来平滑地缩放图形或 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4034438/

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