You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

矩形内弹跳点轨迹:y关于x、θ、W、H的表达式推导

矩形内反弹抛射点的y坐标表达式推导

咱们来一步步拆解这个问题:给定宽为$W$、高为$H$的矩形($W>H$),从某条短边上取一点,以与底边夹角为$θ$($0<θ<90°$)的方向抛出,碰壁后遵循光的反射规律反弹,最终推导任意$x$位置对应的$y$坐标,覆盖0到无穷次反弹的情况。

核心思路:用镜像法简化反弹逻辑

直接计算每次反弹的坐标会非常繁琐,咱们用镜像法把问题转化为直线运动:每次碰到垂直墙(左右边,$x=0$或$x=W$),就把矩形沿垂直方向镜像复制;碰到水平墙(上下边,$y=0$或$y=H$),就沿水平方向镜像复制。这样,原矩形内的反弹路径,就对应镜像后矩形中的一条直线,这条直线的斜率和初始抛射角的正切值完全一致:tanθ = Δy/Δx。

步骤1:定义基础变量

先明确初始条件:

  • 设初始抛射点在左侧短边的$(0, y₀)$位置($0<y₀<H$,$y₀$是初始点到底边的距离)
  • 抛射方向与底边($x$轴正方向)的夹角为$θ$,因此直线的斜率为$tanθ$

步骤2:计算水平方向的等效距离

对于原矩形内任意$x$($0≤x≤+\infty$),先计算水平方向碰壁的次数:

  • 令q = floor(x / W):$q$是碰到垂直墙的总次数($q≥0$,整数)
  • 令r = x % W:$r$是当前$x$在所在矩形内的水平偏移量($0≤r<W$)

根据$q$的奇偶性,确定等效的直线水平距离:

  • 若$q$为偶数:说明当前处于**正向(向右)**的镜像矩形,等效水平距离就是$x$本身
  • 若$q$为奇数:说明当前处于**反向(向左)**的镜像矩形,等效水平距离为2qW - x(相当于从初始点走到第$q$次碰壁后,再反向走剩余距离的总长度)

步骤3:计算镜像后的y坐标

用等效水平距离计算镜像矩形中的直线y坐标:

y_mirror = y₀ + (x if q%2==0 else 2qW - x) * tanθ

步骤4:映射回原矩形的y坐标

现在需要把镜像中的$y_mirror$映射回原矩形的$0≤y≤H$范围:

  • 令p = floor(y_mirror / H):$p$是碰到水平墙的总次数($p≥0$,整数)
  • 令s = y_mirror % H:$s$是当前$y_mirror$在所在矩形内的垂直偏移量($0≤s<H$)

根据$p$的奇偶性,确定原矩形内的$y$:

  • 若$p$为偶数:直接取偏移量,即y = s
  • 若$p$为奇数:取对称偏移量,即y = H - s

最终整合表达式

把上述步骤整合,得到任意$x$对应的$y$坐标:

  1. 计算水平碰壁次数与偏移:q = floor(x / W),r = x - q*W
  2. 计算等效水平距离对应的镜像y:y_mirror = y₀ + (x if q%2==0 else 2*q*W - x) * tanθ
  3. 计算垂直碰壁次数与偏移:p = floor(y_mirror / H),s = y_mirror - p*H
  4. 映射回原矩形:y = s if p%2==0 else H - s

特殊情况验证

  • 0次反弹:当$q=0$且$y_mirror≤H$时,$y = y₀ + x*tanθ$,就是初始的直线抛射,符合预期
  • 趋近90°的极端情况:$θ→90°$时,$tanθ→+\infty$,$y_mirror$会快速增大,$p$的取值也会快速增加,对应无穷次垂直反弹,符合题目描述

内容的提问来源于stack exchange,提问作者Powereleven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:21:35