通过距离和摩擦力计算速度

2024-03-15

我正在用 Javascript、Canvas、HTML5 编写一个游戏,我刚刚发现了一个与高等数学相关的大问题。该游戏是平面 2D 游戏,因此您可以从另一个角度看世界。这意味着没有重力,只有摩擦力。

CODE:

var friction = 0.97

var target = {
  x: 70,
  y: 90,
}

var ball = {
  x: 10,
  y: 20,
  vx: 0,
  vy: 0,
}
var dx = ball.x - target.x
var dy = ball.y - target.y
var angle = Math.atan2(dy, dx)
var dist = Math.sqrt(dx * dx + dy * dy) // <--- AS FAR AS I'VE COME
var speed = ??? // <--- HERE IS THE PROBLEM
ball.vx = Math.cos(angle) * speed
ball.vy = Math.sin(angle) * speed

function update() {
  ball.vx *= friction
  ball.vy *= friction
  ball.x += ball.vx
  ball.y += ball.vy

  // Drawing and other unneccesary things to involve here

  window.requestAnimationFrame(update)
}

update()

所以,我的问题是:如何计算创建球的部分的速度,以使球准确地停在目标 x 和 y 位置?就我而言,我只计算了球和目标位置之间的起始距离。Soo,有什么想法吗?有一个方程式吗?


So you want the sum for i from 1 to ∞ over the term (speed × frictioni), and you want the result to equal dist. This is an infinite geometric series http://en.wikipedia.org/wiki/Geometric_series, the limit of which is speed×friction/(1 − friction).

因此,只需求解速度方程,即可得到:

speed = (1/friction - 1)*dist
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过距离和摩擦力计算速度 的相关文章

随机推荐

  • -[NSResponder swipeWithEvent:] 未调用

    我正在编写一个针对 OS X Lion 和 Snow Leopard 的应用程序 我有一个观点 我想响应滑动事件 我的理解是三指滑动会调用 NSResponder swipeWithEvent 如果该方法在我的自定义视图中实现 我已经看过了
  • 如何让 Doctrine 正确处理 ENUM?

    在一个应用程序中我有一个案例类表继承 https www doctrine project org projects doctrine orm en 2 6 reference inheritance mapping html class
  • 如何在 Unix 中从键盘设备捕获用户输入?

    我想从键盘设备捕获所有用户输入 一次读取一个字节 我编写了以下代码 但它不起作用 if fd open dev char O RDONLY 1 tty open dev tty O RDONLY tcsetattr 0 TCSANOW or
  • 如何在 Node.js 中使用 Gmail API 发送带有附件的电子邮件?

    我是 Node js 新手 我正在尝试使用 Gmail API 创建邮箱 除了上传电子邮件中的附件之外 一切正常 我找到了 Java Python 和 C 的示例 但我找不到任何有关它的 Node 文档 任何提示将非常感激 这是我的代码 f
  • Mongodb 错误:无法从对象、格式错误的几何图形中提取地理密钥?

    我在 mongodb 2 4 3 中收到以下错误 Can t extract geo keys from object malformed geometry type Polygon coordinates 103 832433452441
  • 尝试使用 ls -la 命令列出目录中的文件时出错

    因此 我尝试用来列出我的目录 我克隆到 vsc 的 github 存储库 中的所有文件的命令似乎不起作用 Vsc是最新版本 PS C VSCode Git test gt ls la Get ChildItem A parameter ca
  • SQL Server:无法将显式值插入时间戳列

    使用该语句时 create table demo ts timestamp insert into demo select current timestamp 我收到以下错误 无法将显式值插入时间戳列 将 INSERT 与列列表一起使用以排
  • 使用 Objective C 自动布局中的约束来支持 RTL 语言

    我在 iOS 中有一个应用程序 我正在尝试将其本地化为 RTL 语言 显然 布局需要与语言相对应 首先 我尝试使用一个屏幕底部的按钮来更改其订单 以便使用RTL语言语言环境设置打开应用程序 我使用自动布局 并在按钮和视图之间添加了关于屏幕主
  • 如何更改 Vista Home Premium 中任何文件的“修改日期”? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 在 Windows Vista 中 如何更改任何文件 文本 二进制 的 修改日期 而不进行编辑 我的意思是只改变它的一些属性 在 Win XP 中 如
  • 如何向反应式表单(Angular 2)添加撤消按钮?

    我使用 Angular 2 中提供的反应式表单技术构建了一个表单 该表单有许多不同类型的控件 现在我需要为其添加一个撤消按钮 我已经能够使用以下命令设置基本的撤消按钮click and change事件 当有人单击表单控件时 我会保存以前的
  • data.frame 中列的基于时间的平均(滑动窗口)

    我有一个包含多列的 data frame 其中一列是时间 因此是非递减的 其余列包含在 data frame 的某一行中指定的时间给定的时间记录的观察结果 我想选择一个时间窗口 比如 x 秒 并计算该窗口同一 data frame 中其他一
  • 将 Instagram 图像拉至我的应用程序 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在开发适用于 iPad 的 iOS 应用程序 您可以在其中从卷中导入照片来个性化茶杯 我很想添加 Instagram 这样用户就可以添
  • Python3 + PyGobject + GTK3 和 cx_freeze 缺少 DLL

    当我使用 py python3 pygobject gtk3 应用程序制作 exe 时从 pygobject 站点来看 它缺少一些 DLL 文件 缺少什么文件 我已经手动尝试过需要哪些 DLL 因此 如果这对某人有帮助 the 必须进行编辑
  • 如何将嵌套 Java Collection 中的所有项目展平到单个列表中?

    给定一个复杂的嵌套对象集合 例如 Set
  • WPF 同一系列的多个字体文件

    我有以下字体文件 MyFont Regular tff MyFont Bold tff MyFont Italic tff 我该如何使用它们 我可以做以下事情
  • 显示精灵的另一个实例

    是否可以显示精灵的另一个实例 我想做的是反射动画精灵 到目前为止 我得到的是我的 Sprite 称为 canvas 它内部有使用 AS3 进行动画处理的内容 我想要做的是显示它翻转的副本 在它下面看起来像倒影 我尝试了以下代码 但没有运气
  • 类库(传统便携式)?

    我有一台装有 Microsoft Visual Studio Community 2017 的电脑 版本 15 2 它有一个类库 便携式 的项目模板 另一台版本为 15 3 1 的 PC 有一个类库模板 Legacy Portable PC
  • 请解释如何使用CheckBoxTableCell

    我想了解更多有关如何实际使用或子类化 如果需要 CheckBoxTableCell 的信息 在一种特定情况下 我想使用此类 其中复选框不绑定到基础数据模型属性 假设我有一个名为 选择 的列 其中包含复选框 该列或多或少充当该行的视觉标记 用
  • 亚马逊s3上传多个文件android

    如果有人仍在寻找解决方案 我最终会在代码上使用循环 但我没有找到官方 api 来执行多个文件上传 我有一个 ImageFiles 的 ArrayList 我想将其上传到 Amazon s3 他们的文档提供了以下代码 credentials
  • 通过距离和摩擦力计算速度

    我正在用 Javascript Canvas HTML5 编写一个游戏 我刚刚发现了一个与高等数学相关的大问题 该游戏是平面 2D 游戏 因此您可以从另一个角度看世界 这意味着没有重力 只有摩擦力 CODE var friction 0 9