gpt4 book ai didi

algorithm - 4 墙目标算法之间的弹跳球

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

我正在尝试实现一个球在 4 个垂直墙之间弹跳的动画,球的速度是恒定的。问题是,我使用的框架要求我在球每次与墙壁碰撞时告诉它的起点和终点。

在碰撞的那一刻,我可以访问球与墙壁接触的当前位置和之前的位置。给定墙壁的坐标 x_min、x_max、y_min 和 y_max,以及球的这两个位置,计算其下一个位置的最简单方法是什么?

我想到的所有算法都遵循某种蛮力方法,带有许多 if-else 语句...我想知道是否有一些优雅的方法来处理这个问题。

最佳答案

[抱歉,这是不完整的——我会把它作为评论发布,但它太大了并且涉及 ascii 艺术。我可能稍后会删除它。]

如果您想要一种紧凑、优雅的方法,可能更容易将球想象成一条直线,穿过重复的矩形图案。

+------+------+--*---+
| | | * |
| | |* |
+------+------*------+
| | *| |
| | * | |
+------+---*--+------+
| | * | |
| | * | |
+------+*-----+------+
| * | |
| *| | |
+----*-+------+------+
| * | | |
| * | | |
+-*----+------+------+

(您需要反射矩形,然后“免费”获得反弹)。

我很确定您可以使用类似于 bresenham's algorithm 的东西 计算交点。

[感谢您的投票,但我不得不说,我认为这可能是一个需要纠正的痛苦世界。跟踪反射,特别是如果恰好碰到一个角落,将会很棘手......有时更容易忍受丑陋的代码!]

关于algorithm - 4 墙目标算法之间的弹跳球,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19472050/

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