标签: physics

检测网格和球体之间的碰撞点?

我正在使用OgreMOC编写物理模拟.

我有一个球体,我从相机的位置拍摄,然后使用相机的前向矢量沿着相机朝向的方向移动.

我想知道如何检测球体和另一个网格之间的碰撞.

如何使用MOC或OGRE检查两个网格之间的碰撞点?

更新:本来应该提到这个.我无法使用第三方物理库,因为我需要自己开发(uni项目).

physics ogre3d collision-detection

2
推荐指数
1
解决办法
3193
查看次数

现实两足骨架的物理模拟

我希望利用子弹物理或类似的物理引擎来创建一个逼真的骨架模拟人体样的两条腿.也就是说,在两条"腿"的顶部创建一个由圆形质量制成的"身体"模拟,其中每条腿由3个实心连接,通过3个关节连接,每个关节具有一定的自由度和有限的移动范围.每个方向,类似于人体臀部,膝盖和脚踝.

我的目标是一个真实的模型,因此只有当所有关节都正确平衡时它才会"站立",否则它将会下降.

任何有关现有教程或资源的指示,建议或指示都表示赞赏!这看起来像是从头开始做的大量工作......

simulation physics game-physics bulletphysics physics-engine

2
推荐指数
1
解决办法
5156
查看次数

浮点精度和物理计算

物理世界中的引力Vector2是(0; 0.1).

已知数字0.1是有问题的,因为"它不能准确表示,但是大约是1.10011001100110011001101×2-4".

拥有重力的这个值给了我碰撞的问题,并产生了非常讨厌的错误.将值更改为0.11可解决这些问题.

有没有更优雅的解决方案,根本不需要改变价值?


这个bug的视频

http://www.youtube.com/watch?v=bRynch1EtnE


源代码

http://pastebin.com/jNkqa3sg

第一种方法(AABBIsOverlapping)检查两个AABB实体之间的交集.每帧为每个主体调用第二个方法(Update).

我将尝试解释Update方法的工作原理:

  1. 将重力加速度矢量添加到速度矢量
  2. 创建临时矢量(下一个)并将其设置为速度
  3. 在当前正文周围的单元格中获取空间哈希中的实体
  4. 如果存在水平重叠,请解决它,将next.X和velocity.X设置为0并移动播放器
  5. 如果存在垂直重叠,请解决它,将next.Y和velocity.Y设置为0(或设置为0.1以防止从天花板不断跳跃)并移动播放器
  6. 循环之后,如果没有重叠,则移动播放器

c# floating-point physics

2
推荐指数
2
解决办法
1181
查看次数

子弹弹跳球

我对Bullet有两个问题,但它们是相关的.

在HelloWorldApp中,目标是让一个球在一个盒子上弹跳吧?如果我想测试一架飞机,我可以加btCollisionObject一个btStaticPlaneShape而不是一个盒子吗?

如何为每个对象设置自定义恢复,静态和动态摩擦?

physics game-physics bulletphysics

2
推荐指数
1
解决办法
6317
查看次数

PhysicsSprite和CCSprite有什么区别?

我是Cocos2D的新手,我意识到在Cocos2d更新之前编写的大多数代码都使用了CCSprites.最近我在更新后使用PhysicsSprite实现了很多更新的代码.有什么不同?一个人可以在另一个案件中获得哪些案件?或者如果有的话,对另一方有什么好处?

physics cocos2d-iphone ccsprite

2
推荐指数
1
解决办法
1213
查看次数

Libgdx,物理,加速和FPS

我在Libgdx框架中制作平台游戏.我想实现跳到我的角色的能力.我使用简单的公式:

speed += acceleration * delta_time
r += speed * delta_time
Run Code Online (Sandbox Code Playgroud)

它运行良好,但仅适用于每秒恒定帧数.FPS越低,我的角色越低.我不知道这种行为的原因是什么,跳跃的高度应该是相同的:/我的代码片段:

delta_time=Gdx.graphics.getDeltaTime();
if(input.getUpArrow()){
     if(is_in_air==false){
        is_in_air=true;
        speed_y=speed_y_0;
     }
  }

  if(is_in_air==true){
     speed_y-=acceleration*delta_time;
  }
  else{
     speed_y=0;
  }

  x+=speed_x*delta_time;
  y+=speed_y*delta_time;
Run Code Online (Sandbox Code Playgroud)

这里有一个插图(黑点是字符位置):http: //i.imgur.com/tfSTM.jpg

java physics frame-rate acceleration libgdx

2
推荐指数
1
解决办法
2715
查看次数

用于驾驶帆船的控制算法或功能

有没有人知道有关控制帆船舵的任何算法等.输入将是当前航向和期望航向.

有很多东西需要考虑,比如波浪,风帆,船拖,风的影响......所以考虑到所有可能的变量,我想要做的不是去物理而只是转动方向舵在适当的方向,直到船到达它应该前进的地方,然后减少方向舵,使其正在进行.但是,由于上述因素,船可能会超调或旋转等,所以该方法将不得不应付一点尝试看看.

我的目的是建造一个可以穿越大西洋的模型自主帆船.Microtransat挑战赛.如果有人想参与,请告诉我,因为我肯定可以使用帮助.

亚当(AT)jeeni.co.uk

如果您通过电子邮件将我的电子邮件标题为Microtransat,那么它不会丢失或被忽略.

谢谢,亚当

java algorithm math android physics

2
推荐指数
1
解决办法
814
查看次数

Spritekit模拟流体流动

有一种简单的方法来模拟场景中的电流吗?我知道它们在spritekit中提供重力,质量,密度,阻力和其他属性,但我没有看到,我将如何模拟场景中当前影响的对象?

IE说我有一个物体从重心和密度下降,从屏幕的顶部到底部,好像它是通过watter下降,设置它应该是相当直接的.但是,假设我想在场景中间添加一个从左到右流动的电流...当物体掉落时,它开始遇到电流的影响,并且坠落开始随着电流移动,因为它越靠近电流的中心,它增加了它的左/右运动,当它通过电流的中心并远离其中心时,左/右运动减慢.

这可能吗?我是否需要创建使用重力从左向右移动的invisibe /透明节点来模拟这个?或者我应该使用不同的方法?

physics objective-c game-physics fluid-dynamics sprite-kit

2
推荐指数
1
解决办法
828
查看次数

如何模拟左手规则?

在此输入图像描述

我使用结构来表示这样的方向:

struct POINT{
double x;
double y;
double z; 
}
Run Code Online (Sandbox Code Playgroud)

鉴于B(Bx,By,Bz)I(Ix,Iy,Iz).如何确定F?

c++ physics

2
推荐指数
1
解决办法
147
查看次数

从弧度转换为度

我正在构建一个小型的Physics引擎,但无法使用来将Radian值转换为Degrees atan,因为我只需要一个角度即可输出度数。

首先,我有一个xy值,我需要使用来找到一个角度atan,因此我将y除以x就像这样:

angleDivide = yN / xN;
Run Code Online (Sandbox Code Playgroud)

然后,在将该值放入之前tan,我尝试将其转换为以下度数:

angleToDegrees = angleDivide * (3.14 / 180);
Run Code Online (Sandbox Code Playgroud)

然后我将angleToDegrees放入atan

angle = atan(angleToDegrees);
Run Code Online (Sandbox Code Playgroud)

但是当我显示时angle,我仍然在获得弧度值。

请您告诉我我的代码有什么问题以及如何解决此问题?

c++ math physics visual-studio-2015

2
推荐指数
1
解决办法
2万
查看次数