【问题标题】:Calculate angle Pinball计算角度弹球
【发布时间】:2017-01-06 15:41:32
【问题描述】:

现在我正在用 ActionScript 编写 Pinball 克隆(实际上在这种情况下,语言无关紧要)。我有以下问题:我有两个桨和一个球以一定的速度移动(表示为速度矢量)。我不知道如何计算击球后球的新速度矢量。我所有的计算都出问题了。

我有什么: 桨的当前角度(以弧度为单位),我的球的速度矢量和该矢量的当前角度(以弧度为单位),其中 1,5708(90 度)是直线向下(例如速度矢量,x = 0 和 y = 5 )。

有没有人知道如何解决这个问题。编程语言在这里无关紧要 - 伪代码也可以。

【问题讨论】:

    标签: math vector game-physics


    【解决方案1】:

    你需要将速度矢量(vx,vy)镜像到有方向的线上

    (c,s) = ( cos(anglePaddle), sin(anglePaddle))
    

    这样与它正交的组件会被还原,而与其平行的组件保持不变。正交分量是

    (-s,c)*(-s*vx+c*vy)
    

    这样反射的向量就变成了

    (vx,vy) - 2*(-s,c)*(-s*vx+c*vy) = ( c2*vx + s2*vy, s2*vx - c2*vy )
    

    用于简化使用的双角三角恒等式

     (c2,s2) = ( cos(2*anglePaddle), sin(2*anglePaddle)).
    

    【讨论】:

    • 如果桨没有移动,这可以工作,否则您需要沿接触法线方向将球的相对速度镜像到桨。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    相关资源
    最近更新 更多