标签: physics

十进制模块中的重要数字

所以我决定尝试通过编写一些python脚本来解决我的物理作业来为我解决问题.我遇到的一个问题是,重要的数字似乎并不总能正常出现.例如,它可以正确处理重要数字:

from decimal import Decimal
>>> Decimal('1.0') + Decimal('2.0')
Decimal("3.0")
Run Code Online (Sandbox Code Playgroud)

但这不是:

>>> Decimal('1.00') / Decimal('3.00')
Decimal("0.3333333333333333333333333333")
Run Code Online (Sandbox Code Playgroud)

所以有两个问题:

  1. 我是对的,这不是预期的有效数字量,还是我需要刷数字数字?
  2. 有没有办法做到这一点,而无需手动设置小数精度?当然,我确信我可以使用numpy来做到这一点,但我只是想知道是否有一种方法可以用好奇心来处理十进制模块.

python floating-point physics decimal significance

5
推荐指数
1
解决办法
6912
查看次数

Python:波浪的可视化

我想编程一个简单的波传播可视化.我尝试使用visual python(VPython),但程序非常慢.我现在想要使用二维可视化.你能推荐哪个模块?Tkinter的?Matplotlib?

对于计算我使用numpy/scipy因为它很快.提前致谢.

编辑:你认为matplotlib是一个不错的选择吗?它看起来非常强大.

编辑:我真的卡住了.请帮我!

python visualization physics wave

5
推荐指数
0
解决办法
1589
查看次数

如何在Box2D制作台球并防止球卡在墙上?

快速概述:我正在尝试使用Box2D作为基础进行游戏.现在我的问题:

我应该如何设置台球和边缘以使它们正常运作?球有时似乎没有明显的原因粘在边缘上.我有四个静态墙体对象,在桌子边缘有一个恢复原状.

每个球具有以下属性:

friction: 0.3
restitution: 0.3
density: 58.474822 (kg/m^2)
radius: 0.028575 (m)
Run Code Online (Sandbox Code Playgroud)

母球的密度为101.356358(kg /平方公尺)

当施加一个1.2千米/秒的提示脉冲时,球似乎以正常的水池球速度移动,并且大部分正确地从墙壁上反弹.然而,有时当球击中墙壁时它根本不会反弹,它只会停止,或者只是继续沿着墙壁行进.这看起来很奇怪,似乎不正确.有没有更好的方法来设置它?

physics 2d box2d

5
推荐指数
1
解决办法
3535
查看次数

导弹太空物理学,宇宙飞船 - 学习微积分版

假设我们有导弹A,具有位置矢量和速度幅度(忽略加速度,就像许多游戏一样)和太空飞船B,具有位置和速度矢量.现在,这种导弹是一个讨厌的寻找导弹,将试图寻找太空船B的最佳拦截.

导弹A有两个优点:它知道微积分,它可以计算多项式的根.然而,导弹,或抽象的,程序员,仍在学习微积分,并想知道他是否有正确的方程式.(多项式根将由一个名为Jenkins-Traub Code的Netclib实现的好人解决)

以机智:

  • mp =导弹位置

  • mv =导弹速度

  • sp =宇宙飞船的位置

  • sv =宇宙飞船速度

  • t =时间

根据程序员的最佳猜测,拦截方程为:t sp sv + t sp mv - t mp sv - t mp mv

除了我很确定我完全走错了轨道,因为在这个混乱中应该有一些指数; 这是一个尝试解决:(sp-mp)(sv-mv)(t)

我的另一个选择是区分(sp-mp)(sv-mv)^ 2,但我想首先得到反馈,部分是因为,除非我弄错了,'(sp-mp)'解析为'1'.这似乎......奇怪.OTOH,这个功能正在改变的速度可能就是我正在寻找的.

那么 - 我有什么问题,在哪里以及为什么?

谢谢.

第一个线程的潜在有用链接.

编辑:

方程式求和:

(a + bx)+(c + ex)

(a + 1bx ^ 0)+(c + 1ex ^ 0)

(a + 1)+(c + 1)

非可行的.

方程的乘积:

(A + BX)(C + EX)

AC + AEX + CBX + BEX ^ 2

不是多项式(不能用Jenkins-Traub解决)并且看起来不太正确.

AC + 1aex ^ …

math physics calculus

5
推荐指数
1
解决办法
1076
查看次数

在没有连续碰撞的情况下检测两个box2d物体的初始碰撞

我有一些简单的box2d机构设置与一个联系人监听器,如下所示:

#import "MyContactListener.h"

MyContactListener::MyContactListener() : _contacts() {
}

MyContactListener::~MyContactListener() {
}

void MyContactListener::BeginContact(b2Contact* contact) {
// We need to copy out the data because the b2Contact passed in
// is reused.
MyContact myContact = { contact->GetFixtureA(), contact->GetFixtureB() };
_contacts.push_back(myContact);


b2Body *A =  contact->GetFixtureA()->GetBody();
b2Body *B =  contact->GetFixtureA()->GetBody();

NSLog(@"Collision detected!");
PLAYSOUND(COLLISION);

}

void MyContactListener::EndContact(b2Contact* contact) {
    MyContact myContact = { contact->GetFixtureA(), contact->GetFixtureB() };
    std::vector<MyContact>::iterator pos;
    pos = std::find(_contacts.begin(), _contacts.end(), myContact);
    if (pos != _contacts.end()) {
        _contacts.erase(pos);
        }
}

void MyContactListener::PreSolve(b2Contact* contact, …
Run Code Online (Sandbox Code Playgroud)

physics box2d cocos2d-iphone

5
推荐指数
1
解决办法
1317
查看次数

GTA2喜欢Car Physics,但非常简化

好的,所以这个问题一直困扰着我最长的时间.任何人都可以告诉我或指向一个可以像GTA2那样控制汽车的算法吗?经过3天的研究,我可以想出所有这些算法,用于在车轮上使用枢轴和关节以及分离车轮等.这是实现像GTA2那样的简单汽车运动的唯一途径吗?

我希望能够在没有轮子的矩形上使用该算法,但仍然可以使汽车漂移.那可能吗?顺便说一句,我是2D游戏的Box2D.

我知道这更适合gamedev,但由于某些原因我无法发布问题.

java android physics box2d andengine

5
推荐指数
1
解决办法
5627
查看次数

物体碰撞编程(多碰撞情况)

我一直在学习关于phisics编程中的碰撞,我有一个很大的疑问.

在球体中思考,当一个球体同时与2个球体碰撞时,我认为使两个球体移动的力量大小必须除以2.但是当我编程它的时候,我总是看到一个球体的速度比第二个球体的速度快,导致我编程它的方式首先与另一个球体碰撞.让我们展示一个图像来清楚地绘制问题:

在此输入图像描述

首先它检测红色球体.然后检测到碰撞,力的大小就像只有一个球体.然后它检测橙色球体,力量小于第一个.

知道我必须使用什么来编程这个,或者我是否有任何误解?

mod:

此外,如果你帮助我寻找能够很好地实现这一目标的机制,我会给你50多个.

physics collision-detection

5
推荐指数
1
解决办法
1760
查看次数

Physijs,结合运动和物理

我一直在寻找一段时间以获得结论,但我似乎无法找到任何解决方案.

我正在尝试使用THREE.JS和PHYSI.JS创建一个简单的场景来获得一个小平台动作.我有一个质量为0的扁平盒子作为我的工作,还有一个盒子网格作为我的角色.Physijs的网站似乎建议我将__dirtyPosition变量设置为true.这里的问题是:__dirtyPosition与物理混淆.当我将角色从水平边缘移开时,他并没有摔倒.事实上,当它发生碰撞时,它似乎会停在世界立方体的中间位置.

当我尝试更新位置而不应用时__dirtyPosition,立方体会被放回原位.它有点颤抖,好像它有一个小小的癫痫发作,就是这样.如果我可以同时使用物理和运动,那就太棒了,使用Physi进行碰撞就像是过度使用它.这是我现在的表现,显然是错误的方式:

level1.generateScene = function()
{
   level1.camera = new THREE.PerspectiveCamera(75, this.cameraWidth / this.cameraHeight, 0.1, 1000);

   level1.material = new AdapterEngine.createBasicMaterial({color: 0x00ff00}); //Threejs basic material
   level1.ground = new AdapterEngine.createBoxMesh(5, 0.1, 5, level1.material, 0); //Physijs box mesh with a mass of 0

   level1.playerMaterial = new AdapterEngine.createBasicMaterial({color:0x0000ff}, 0.6, 0.3); //Physijs basic material with a fruction of 0.6, and a restitution of 0.3
   level1.player = new AdapterEngine.createBoxMesh(0.3, 0.3, 0.3, level1.playerMaterial, 0.1); //Physijs box mesh with a mass of …
Run Code Online (Sandbox Code Playgroud)

javascript physics three.js physijs

5
推荐指数
1
解决办法
1842
查看次数

在移动平台上移动节点

我有一个移动平台,但当节点在平台上方时,它不会随平台水平移动

在本文中,解释了问题:移动平台地狱

http://www.learn-cocos2d.com/2013/08/physics-engine-platformer-terrible-idea/

在评论中有Box2D的解决方案:运动体

但是SpriteKit怎么样?

更新

我正在使用平台

let moveHPart1 = SKAction.moveByX(origW, y: 0, duration: moveDuration);
let moveHPart2 = SKAction.moveByX(-origW, y: 0, duration: moveDuration);

platform(SKAction.repeatActionForever(SKAction.sequence([moveHPart1, moveHPart2])));
Run Code Online (Sandbox Code Playgroud)

physics sprite-kit swift

5
推荐指数
1
解决办法
1146
查看次数

为什么这个球在一个圆圈内不能正常弹跳?

请看这个小提琴:https://jsfiddle.net/sfarbota/wd5aa1wv/2/

我试图让球以正确的角度在圆圈内反弹而不会失去速度.我想我有碰撞检测,但我面临两个问题:

  1. 每次弹跳球都会减速,直到最终停止.
  2. 弹跳的角度似乎是不正确的.

这部分是基于这里给出的答案:https://stackoverflow.com/a/12053397/170309但我不得不从Java翻译,并且从他们看起来无关紧要的例子中跳过了几行.

这是代码:

JavaScript的:

function getBall(xVal, yVal, dxVal, dyVal, rVal, colorVal) {
  var ball = {
    x: xVal,
    lastX: xVal,
    y: yVal,
    lastY: yVal,
    dx: dxVal,
    dy: dyVal,
    r: rVal,
    color: colorVal,
    normX: 0,
    normY: 0
  };

  return ball;
}

var canvas = document.getElementById("myCanvas");
var xLabel = document.getElementById("x");
var yLabel = document.getElementById("y");
var dxLabel = document.getElementById("dx");
var dyLabel = document.getElementById("dy");
var vLabel = document.getElementById("v");
var normXLabel = document.getElementById("normX");
var normYLabel …
Run Code Online (Sandbox Code Playgroud)

javascript math physics

5
推荐指数
1
解决办法
835
查看次数