问题标签 [physics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3590 浏览

algorithm - 在圆形碰撞和旋转方面需要帮助?- 游戏物理

好的,所以我有一堆球:

火球


我想弄清楚的是如何制作这些圆圈:

  • 根据他们接触的表面旋转

  • 修复处理多个接触对象时的碰撞穿透。


编辑:这就是我所说的旋转

替代文字

  • 球 0靠在球 3 上时将逆时针旋转

  • 球 5靠在球 0 上时将顺时针旋转


尽管对此的解决方案是通用的,但为了记录,我正在使用 Javascript 和 SVG,并且更愿意自己实现它而不是使用库。

帮助将不胜感激。谢谢!:)

0 投票
4 回答
609 浏览

c# - 如何计算单个点的质量?

我正在研究 C# 2d 软体物理引擎,我需要将质量分配给给定的对象顶点:顶点列表(x,y 位置)、对象的总质量和质心。

质心如下:

替代文字

在哪里,

我需要一种算法,可以在给定 R、M 和 rj 的情况下近似每个 mj。

编辑:我只是想澄清一下,我知道有无限的解决方案。我正在寻找一种快速算法,可以找到一组 mj(这样它们每个都足够接近 mj = M/[顶点数],并且“足够”被定义为一些小的浮点阈值)。

此外,每个对象将包含大约 5 到 35 个点。

0 投票
4 回答
572 浏览

physics - 模拟在足球场上奔跑的人

在一场足球比赛中,我正在使用转向行为计算转向力。这部分没问题。但是,我正在寻找实现简单 2d 人体运动的最佳方法。

例如,当转向力与当前速度或航向矢量之间的 cos(角度) 低于 0.5 时,玩家不应“转向”(或简单地将根据转向力计算的加速度添加到其当前速度,因为它看起来好像玩家是一辆车。一个人,当有一个重要的方向改变时,会放慢速度,当它放慢了足够的速度时,它会开始向新的方向加速。

有没有人对如何实现这种行为有任何建议和想法?提前致谢。

0 投票
4 回答
6024 浏览

matlab - Matlab:用 biot-savarts-law 计算的磁场

这是使用 biot-savart-law 计算磁场的代码。我希望得到一些优化此代码的提示。遗憾的是我使用德语:(我再也不会这样做了。:)

0 投票
1 回答
239 浏览

graphics - 自行车的旋转矩阵

假设你有一个平面,上面放着一辆自行车。当自行车进入转弯时,它以角度 theta 倾斜进入转弯。同时,自行车车架指向与自行车速度相同的方向。

因此,给定自行车速度向量 v(假设在 XZ 平面内)和倾斜角 theta,您如何找到自行车的旋转矩阵?

0 投票
7 回答
4657 浏览

c++ - c++中蒙特卡洛方法的好书?

有人可以推荐一本关于 C++ 中蒙特卡洛算法的好介绍书吗?最好是应用于物理学,甚至更优选地,这种物理学是量子力学。

谢谢!

0 投票
2 回答
4273 浏览

math - 3d 抛物线轨迹

我正在尝试使用 3d 空间中的弧线进行一些计算,但有点迷失了。假设我想在 3d 空间中为弧设置动画以连接 2 个 x、y、z 坐标(两个坐标的 z 值均为 0,并且只是平面上的点)。我通过向它发送起始 x、y、z 位置、旋转、速度和重力值来控制弧。如果我知道需要连接的 x、y、z 坐标,有没有办法计算将它从起始 x、y、z 坐标连接到结束坐标所需的旋转、速度和重力值?

谢谢。

编辑:谢谢汤姆10。为了澄清,我通过创建带有粒子的抛物线来制作“弧”。我试图弄清楚如何(通过启动由一系列粒子形成的抛物线,其起始为 x、y、z、速度、旋转和重力)确定它最终的位置(最后的 x、y、z 坐标)。因此,如果这是需要连接的两个坐标:

如何仅使用这些变量来计算抛物线的旋转、速度和重力,从而开始形成抛物线:

我试图保持角度恒定。

0 投票
2 回答
629 浏览

f# - 在 F# 中展开嵌套循环

我一直在努力使用以下代码。它是Forward-Euler 算法的 F# 实现,用于对在引力场中移动的恒星进行建模。

虽然这可行,但它并不完全是“功能性的”。它的性能也很糟糕,比等效的 c# 代码慢 2.5 倍。body 是 Body 类型的结构数组。

我正在努力解决的问题是 force() 是一个昂贵的函数,所以通常你为每对计算一次并依赖 Fij = -Fji 的事实。但这确实会打乱任何展开的循环等。

建议已收到!不,这不是家庭作业...

谢谢,

阿德

更新:澄清 Body 和 VectorFloat 被定义为 C# 结构。这是因为程序在 F#/C# 和 C++/CLI 之间进行互操作。最终,我将在 BitBucket 上获取代码,但这是一项正在进行的工作,我有一些问题需要解决,然后才能将其发布。

向量定义了标准向量类所期望的运算符类型。对于这种情况,您可能可以使用 .NET 框架中的 Vector3D 类(我实际上正在研究切换到它)。

更新 2:根据以下前两个回复改进了代码:

  • force 函数中覆盖 b1 == b2 情况的分支是最严重的违规者。如果 softeningLength 始终非零,即使它非常小(Epsilon),您也不需要它。此优化在 C# 代码中,但不在 F# 版本中(doh!)。

  • Math.Pow(x, -1.5) 似乎比 1/ (Math.Sqrt(x) * x) 慢很多。本质上,这个算法有点奇怪,因为它的性能取决于这一步的成本。

  • 将力计算内联并消除一些分歧也带来了一些改进,但性能确实被分支杀死并且由 Sqrt 的成本主导。

WRT 在结构上使用类:在某些情况下(此代码的 CUDA 和本机 C++ 实现以及 DX9 渲染器),我需要将主体数组放入非托管代码或 GPU 上。在这些情况下,能够 memcpy 一个连续的内存块似乎是要走的路。不是我从一组 Body 中得到的东西。

0 投票
2 回答
959 浏览

physics - 弹丸运动中的公式?

我如何计算达到特定高度的角度?假设我想要高度 320.time 增加为 0.1。我正在使用 h = (u sin(angle))^2 / 2g; 我可以把时间放在哪里?

0 投票
1 回答
147 浏览

flash - 具有真实模型的 Flash 物理 SDK

有一些用于 Flash 的开放 SDK,可以完成。用物理旋转照片?此类程序的示例 BumTop、ePic、Coloris(无物理)。飞机上的照片,能移到真实的物理上吗?