- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试检测射弹是否会撞击防护罩 - 以及碰撞将发生在何处。
在这张图片上,你可以看到情况。虽然 A
和 B
射弹与护盾中心 S
的距离大致相同,但其中一枚会与护盾碰撞,另一枚会不是。
数学上简单的解决方案将使用圆的数学方程和射弹路径的直线方程。
用笔和纸,我可以计算。但是,我在直接实现解析几何方面有非常糟糕的经历。
另外,对于离开护盾的射弹,这会返回正值。我如何过滤它们?
第二种方法, friend 的想法,是测量射弹路径和防护罩中心之间的最小距离 - 如果 l
小于 r
,就会发生碰撞。
实现起来好像比较容易,但是没有让我知道哪里会发生碰撞。
我在二维空间工作。我正在使用 C# 和 Unity 引擎,但欢迎使用通用解决方案。
弹丸当然被认为是一个零大小的点。
最佳答案
使用轨迹的参数方程:X= X0 + t.P + X0
,Y = t.Q + Y0
(从(X0, Y0)
方向 (P, Q)
).
将其代入圆方程(X - Xc)^2 + (Y - Yc)^2 = R^2
,得到:
(t.P + Dx)^2 + (t.Q + Dy)^2 = (P^2+Q^2).t^2 + 2.(P.Dx+Q.Dy).t + Dx^2+Dy^2 = R^2.
这是 t
中的二次方程。每当有正根时,盾牌就会被击中。
如果您的射弹具有非零半径 r
,想象一下您将射弹放气到 0
并将目标充气到 R + r
。
关于c# - 检测可能的射弹与盾牌碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22622511/
我刚刚创建了一个新的 javascript 文件文件夹。 结构是: .gitignore README.md build node_modules package.json src webpack.c
我正在学习关于 simple cocos2d game 的教程. 但是在该教程中,用户发射的子弹仅朝一个方向 我该怎么做才能让它向所有方向发射而不是单向发射? 这里是方向的代码。 int offX =
我正在构建一个小型物理引擎,以给定的角度和速度发射射弹,并在每个时间间隔跟踪和显示速度/位置 vector ,但我的程序遇到了一些问题。 当我运行我的程序时,它没有循环,并且 position 变量保
我目前有一个从坦克发射的射弹。目前它工作得很好,但我无法在射弹击中目标或离开屏幕后“重新使用”射弹。这是我目前正在使用的代码; //Laser Shape sf::Texture LaserTextu
我有一个 git 仓库,其目录结构如下所示: root ---------- src | | |------ 3rd root 是我的工作目录,3rd
我是一名优秀的程序员,十分优秀!