gpt4 book ai didi

physics - 从另一个圆反射一个圆

转载 作者:行者123 更新时间:2023-12-01 13:06:00 25 4
gpt4 key购买 nike

使用 iPhone 和 Objective C。

我正在开发一款游戏,我需要正确地反射圆形物体上的球。我正在尝试将其作为线和圆的交点来做。我的球位置在圆圈外,我的新球位置在下一次绘制更新​​时会在圆圈内。我知道线(球路径)和圆的交点。现在我想围绕交点旋转球路径的终点,以获得正确的切线反射角度。

以下是已知的:

  • 球电流 x,y
  • 球端 x,y
  • 球半径
  • 圆心 x,y
  • 圆半径
  • 球路与圆x、y的交点

我知道我需要找到切线和传入球路径之间的入射角,这也等于我的反射角。我想一旦我知道这两个角度,我就可以从 180 中减去它们以获得我的旋转角度,然后将我的端点围绕相交角度旋转该角度。我只是不知道如何。

最佳答案

首先,您应该注意球的中心不一定要在圆圈内才能表明存在反射或反弹。只要球心到圆的距离小于球的半径,就会发生弹跳。

如果圆的半径是R,球的半径是r,如果你转换成圆的半径是,事情就简单了>R+r 并且球的半径为 0。对于碰撞检测和反射/弹跳的目的,这是等价的。

如果你有(放大的)圆和球的路径之间的交点,你可以很容易地计算出该点圆的法线N(它是方向上的单位向量从圆心到碰撞点)。

对于传入矢量V,反射矢量为V-2(NV) N,其中 (NV) 是点积。对于这道题,传入的向量V是交点到圆内点的向量。

至于上面给出的反射公式,使用矢量数学推导相对容易,但您也可以谷歌搜索“calculate reflection vector”之类的词。公式中的符号会随着假定的VN 方向而变化。 Mathworld has a derivation尽管如前所述,标志是不同的。

关于physics - 从另一个圆反射一个圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3162619/

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