这段代码取自使用XNA框架构建的游戏.我想要解释一下它在三角形和物理学方面是如何工作的.
ball.velocity = new Vector2((float)Math.Cos(cannon.rotation),(float)Math.Sin(cannon.rotation));
ball.rotation是一个精灵的旋转,我应该想到的是弧度.
为什么他们可以使用弧度中的角度来找到x位置然后找到斜边指向的方向的y位置相同的东西.
我问这个的原因.我想了解这个框架如何计算trig.我试图让一个精灵转向鼠标所在的方向,即:x和y已知,我只需要角度.
所以这里有2个问题.解释上面的代码并将sprite指向已知点的方向.
更新:
我发现对象所在的点a不是(0,0),因为xna使用逆坐标系.所以我现在的变量是:
对象点.鼠标点.
我的物理引擎中有一个碰撞解决方法,如下所示:
Vector2 n1pos = n1.NonLinearSpace != null ? n1.NonLinearPosition : n1.Position;
Vector2 n2pos = n2.NonLinearSpace != null ? n2.NonLinearPosition : n2.Position;
Vector2 posDiff = n2pos - n1pos;
Vector2 posDiffNormal = posDiff;
posDiffNormal.Normalize();
float totalRadius = n1.Radius + n2.Radius;
float posDiffLength = posDiff.Length();
float interPenetration = totalRadius - posDiffLength;
float averageRestitution = (n1.RestitutionCoefficient + n2.RestitutionCoefficient) / 2;
Vector2 forceAmount = Vector2.Multiply(posDiffNormal, interPenetration);
Vector2 n1force =
(
(n1.Velocity * n1.Mass) +
(n2.Velocity * n2.Mass) +
n2.Mass * averageRestitution * (n2.Velocity - n1.Velocity) …Run Code Online (Sandbox Code Playgroud) 我正在用java编写一个用carnot引擎建模的程序,我想计算完成的工作,我需要使用集成.我一直在谷歌四处寻找,并没有找到我想要的,有什么建议吗?
假设我有一个圆形在一个矩形区域内弹跳.在某些时候,这个圆圈将与矩形的一个表面碰撞并反射回来.我这样做的通常方法是让圆圈重叠该边界,然后反映速度矢量.圆实际上与边界重叠的事实通常不是问题,在低速时也不是很明显.在高速下,圆圈正在做一些不应该做的事情.
我想要做的是以编程方式将反射考虑在内并将圆放在它的正确位置,然后再将其显示在屏幕上.这意味着我必须计算它到达当前位置和它的未来位置之间的边界的点 - 而不是计算它的新位置然后检查它是否已经到达边界.
这比通常的圆/矩形碰撞问题稍微复杂一点.我有一个模糊的想法,我应该怎么做 - 基本上在当前位置和新位置之间创建一个边界矩形,这带来了它自己的一系列问题(因为矩形根据圆的方向旋转)速度).但是,我认为这是一个常见问题,而且已经存在一个共同的解决方案.
这种问题有一个共同的解决方案吗?也许我应该研究一些基本理论?
我是计算机编程的新手,并且有一些使用python编程的经验.我正在考虑开发一个程序来进行物理模拟(射弹,圆周运动,阻尼简谐运动系统等)作为业余爱好项目.我想编写一个程序,它可以由一个非技术用户(我的同学)在各种平台(mac,windows等)上运行,没有任何设置和python似乎不是一个很好的选择建立这样一个程序所以我正在寻找替代方案.JavaScript引起了我的注意,因为它似乎在现代浏览器上非常强大,特别是与HTML5结合使用.我想知道是否适合在这种类型的应用程序中使用JavaScript,以及关于我应该从哪里开始的一些信息(我没有JavaScript知识)在此先感谢!
是的,我确实看过网站上的类似线程,但我想自己写一些东西比使用第三方库(除了前端,如果可能的话):)
使用c#我有一个列表,这些对象都有一个浮动质量,在创建对象时随机化.
什么是循环列表并找到质量最高的对象的最有效方法?
我正在用Java创建一个2d平台游戏,出于某种原因,当玩家跳向平台时,它有时会卡住.这是问题的图像:

如你所见,我正在跳到平台的顶部,但它被卡住了.
这是我的坠落/跳跃的碰撞代码:
if (guy.getJumpState() == false) {
if (canExecuteMovement(0, 8)) {
...
onGround = false;
if (guy.getY() > this.getParent().getHeight() / 2 - 100) {
// if you are in the middle, move the platforms.
for (int i = 0; i < platformCount; i++) {
if (platform[i].getVisibility() == true) {
platform[i].setY(platform[i].getY() - 8);
}
}
} else {
// or just move the guy if not.
guy.moveY(8);
}
} else {
onGround = true;
}
} else {
if (canExecuteMovement(0, …Run Code Online (Sandbox Code Playgroud) 几乎每场比赛都倾向于使用一些游戏循环.Gafferongames有一篇关于如何制作精心设计的游戏循环的精彩文章:http://gafferongames.com/game-physics/fix-your-timestep/
在他的代码中,他使用integrate( state, t, deltaTime );,我相信state包含对象的位置,速度和加速度.他用RK4将其从整合t到t+deltaTime.
我的问题是,为什么使用像RK4这样的数值积分技术,当你可以使用运动学方程(这里)找到确切的值?
这些方程在加速度恒定时起作用.你似乎很少会在一个时间步长内改变加速度.看起来RK4是一种性能更低,精度更低,更复杂的解决方案.
编辑:我认为您可以为对象添加"混蛋"值,如果您真的想要,仍然可以找到加速度,速度和位移的精确表达式.
编辑2:嗯,我没有仔细阅读他的"集成基础知识"文章.我认为他正在对阻尼器和弹簧进行建模,这会在一个时间步长内造成非恒定的加速度.
我正在查看UIPushBehavior的Apple文档,它让我在瞬时模式下感到困惑.我知道加速公式是Force = Mass*acceleration.我假设视图的质量是宽度*高度*密度(1).文档描述了推送幅度如下:
默认幅度为零,相当于无力.应用于密度值为1.0的100点×100点视图的大小为1.0的连续力矢量导致在角度或pushDirection属性指示的方向上的视点加速度为100点/秒2.
这在连续推动方面是有意义的,它提供恒定的加速度.它没有说任何关于皮肤推进的内容.如何理解1级瞬时推动对100x100视图的速度?
physics ios7 uidynamicbehavior uidynamicanimator uipushbehavior
是否有可能使用朱莉娅的方程求解器创建一个弹跳球的简单模型?
我从这开始:
using ODE
function bb(t, f)
(y, v) = f
dy_dt = v
dv_dt = -9.81
[dy_dt, dv_dt]
end
const y0 = 50.0 # height
const v0 = 0.0 # velocity
const startpos = [y0; v0]
ts = 0.0:0.25:10 # time span
t, res = ode45(bb, startpos, ts)
Run Code Online (Sandbox Code Playgroud)
它产生有用的数字:
julia> t
44-element Array{Float64,1}:
0.0
0.0551392
0.25
0.5
0.75
1.0
?
8.75
9.0
9.25
9.5
9.75
10.0
julia> res
44-element Array{Array{Float64,1},1}:
[50.0,0.0]
[49.9851,-0.540915]
[49.6934,-2.4525]
[48.7738,-4.905]
[47.2409,-7.3575]
?
[-392.676,-93.195]
[-416.282,-95.6475]
[-440.5,-98.1] …Run Code Online (Sandbox Code Playgroud) physics differential-equations julia differentialequations.jl
physics ×10
c# ×3
xna ×3
java ×2
.net ×1
2d ×1
algorithm ×1
game-physics ×1
integration ×1
ios7 ×1
javascript ×1
julia ×1
list ×1
math ×1
restitution ×1
swing ×1
trigonometry ×1