标签: physics

垂直圆周运动:时间(x/y)与速度方程

我想通过动画来模拟以下内容:
一个球在
垂直圆形环的最底部点以一定的速度开始并在其中保持滚动直到其速度允许.

为此,我想找到速度/ x/y与时间方程.
例如,如果球的质量:5Kg,圆环的半径= 10m,
球的初始速度是200m/s,它的速度和(x,y)位置
在5秒后是什么?

谢谢.

physics game-physics

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

确定飞机的位置/方向

我在一个涉及陀螺仪的项目中工作......

我正在使用Arduino和ITG 3200来读取陀螺仪的数据.每个轴(x,y,z)得到3个以度/秒为单位的值.

我的问题是:我如何知道设备的实际(物理)位置或方向(比方说飞机).必须有一个数学公式或类似的东西.

math physics arduino

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

Box2D重力影响不同的质量

如果我给身体不同的密度/质量,它们仍然以相同的速度下降.我知道在没有空气阻力的地方,质量不会影响下落速度.

但是,我如何逻辑制作,比方说气球和砖块,以不同的速度下降?我能想到的最接近的方法是使用setGravityScale来设置这一切..

java android physics box2d libgdx

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

两种看似有效的计算速度的方法得出了不同的答案

我试图根据X和Y坐标的向量计算物体的速度.最初,我使用了两个分量速度,然后使用毕达哥拉斯定理将它们加在一起.mdcx并且mdcy分别是x和y坐标的矢量.

for i=2:length(mdcx)
    xdif(i)=mdcx(i-1)-mdcx(i);
end

xvel=(xdif/(1/60));

for i=2:length(mdcy)
    ydif(i)=mdcy(i-1)-mdcy(i);
end

yvel=(ydif/(1/60));

v=hypot(xvel,yvel);
Run Code Online (Sandbox Code Playgroud)

一位朋友提到这是多么愚蠢,我意识到有更好的方法:

d = hypot(mdcx,mdcy);

for i = 2:length(d)
    v(i,1) = d(i)-d(i-1);
end

v = v/(1/60);
Run Code Online (Sandbox Code Playgroud)

这一切都很好,除了两种方法得到不同的答案,我无法弄清楚为什么.方法编号的结果示例.1是:

  • 3.39676316513232
  • 1.69387130561921
  • 1.21490740387897
  • 1.40071410359145
  • 0.702281994643187
  • 1.02703456611744
  • 0.933380951166206

和方法编号的等效部分.2:

  • 3.00324976888577
  • 1.41904819171419
  • 0.473028796076438
  • 0.772429851826608
  • 0.126083801997687
  • 1.02574816428026
  • 0.541889676174012

我的问题

我在这做错了什么?为什么这些结果不一样?这可能是一个愚蠢的错误,但我似乎无法弄清楚它的来源.我使用hypot得当吗?

提前致谢!

matlab physics kinematics

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

从扭矩和距离中找出力

我有一个用扭矩W旋转的固体物体,我想计算施加在距离物体中心D单位的某个点上的力F. 所有这些值都以Vector3格式表示(x,y,z)

我知道直到现在W = D x F,其中x是叉积,所以通过展开这个我得到:

Wx = Dy*Fz - Dz*Fy
Wy = Dz*Fx - Dx*Fz
Wz = Dx*Fy - Dy*Fx
Run Code Online (Sandbox Code Playgroud)

所以我有这个等式,我需要找到(Fx,Fy,Fz),我正在考虑使用Simplex方法来解决它.由于F向量也可以有负值,我将每个F变量分成2(F = GH),因此新方程如下所示:

Wx = Dy*Gz - Dy*Hz - Dz*Gy + Dz*Hy
Wy = Dz*Gx - Dz*Hx - Dx*Gz + Dx*Hz
Wz = Dx*Gy - Dx*Hy - Dy*Gx + Dy*Hx
Run Code Online (Sandbox Code Playgroud)

接下来,我定义了单纯形表(我们需要<=不等式,所以我复制每个方程并将其乘以-1.另外,我将目标函数定义为:最小化(Gx - Hx + Gy - Hy + Gz - Hz).

该表如下所示:

    Gx       Hx      Gy     Hy      Gz     Hz   <=   RHS
    ============================================================
    0        0      -Dz     Dz      Dy    -Dy   <= …
Run Code Online (Sandbox Code Playgroud)

physics distance

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

使用BigInteger计算地球质量

我试图用BigInteger来计算地球的质量,但实际上并没有增加一些东西.

我用来计算地球质量的公式是:M = ar2/G = 5.98×1024 kg.a是重力加速度(9.8 m/s平方),r是地球的半径((6.4)*(10 ^ 6))和Big-G((6.673)*(10 ^ -11))引力常数.

我应该得到的值是:5.97219×10 ^ 24 kg = 5,972,190,000,000,000,000,000,000,000,但我当前输出的值是:-9353.显然是一个巨大的差异,所以任何帮助将不胜感激.

这是我到目前为止所拥有的......

double bigG = (6.673) * (10^-11);
double radiusSquared = 6371^2;
double acceleration = (10^2); (obviously rounded here from 9.8)
double mass = (acceleration*radiusSquared)/bigG;

BigInteger massBig = new BigDecimal(mass).toBigInteger();
System.out.println("mass of earth: "+massBig);'
Run Code Online (Sandbox Code Playgroud)

我不确定我是否只是输入了一些输入错误,或者我是否未能识别Java的某些基础过程,因为我不熟悉Java和物理.

谢谢


更新

好的,我做了你说的,似乎解决了部分问题......这是更新的代码:

public static void getPlanetMass(){
    double bigG = (6.673) * (Math.pow(10, -11));
    double radiusSquared =  (Math.pow(6371, 2));
    double acceleration =  (Math.pow(9.8,2)); //(obviously rounded here from 9.8) …
Run Code Online (Sandbox Code Playgroud)

java math physics biginteger

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

Python如何对高度方程求平方

在python数学中,im试图计算出对象的高度,而我需要平方平方来做。方程是速度^ * sin ^(角度)/ 2 *重力。

v = float(input('start vlocity m/s: '))
a = float(input('start angle : '))
equ = ((v**2) * math.sin**2(math.radians(a)) / 2 * 9.81
print(str(equ) + ' M')
Run Code Online (Sandbox Code Playgroud)

python math physics trigonometry

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

C++:洛伦兹因子方程

我是C++的新手.我参加了Python课程,但宁愿继续学习更有用的语言.但我正在用C++重做那个课程中的几个作业,以帮助我顺利完成.

这个特殊的问题是编写能解决Lorentz因子的代码,输入光速的一小部分(速度/ c)应该在0和1之间.我确信我有一个非常简单的事情.做错了; 来自Python的我可能不熟悉的东西.但帮助将不胜感激.我一直得到答案"南".它与我的类型声明有关吗?从我的理解,因为我正在使用小数,我应该使用浮动吗?

这是洛伦兹方程(但请记住,我的代码接受v/c作为一个数字):

http://spiff.rit.edu/classes/phys200/lectures/ke_rel/eqn_gamma.gif

#include <iostream>
#include <math.h>


using namespace std;

float lorentz_factor (float v) {
    float answer = 1 / sqrt(1 - exp(v));
    return answer;
}

int main() {

    float v;

    cout<<"Please enter a number between 0 and 1";
    cin>> v;
    while (!((v < 1) && (v > 0))) { // "v" should be entered as a fraction of     the speed of light.
        cout<<"Try again: ";
        cin>>v;                     // and only accepted if it is between 0 and 1 …
Run Code Online (Sandbox Code Playgroud)

c++ physics

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

Make node spacing change dynamically in vis.js

I am trying to visualize some graphs. Unfortunately I often get situation when one node overlaps another, as shown below:

Setting nodeSpacing option doesn't fit me because some node labels are extremely long and some are short. Is there any option setting dynamical positioning? Here are my options:

    var options = {
         layout:{
             hierarchical: {
                 enabled:true,
                 parentCentralization: true,
                 direction: 'DU',
                 sortMethod: 'directed'
                }
         },
         edges:{
             arrows: 'from'
         }
 }
Run Code Online (Sandbox Code Playgroud)

javascript physics vis.js

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

Snell定律 - 如何处理asin()中的无效值?

斯内尔定律指出,入射角和折射角的正弦比等于给定材料折射率之比的倒数:

\ frac {\ sin {\ Theta _ {1}}} {\ sin {\ Theta _ {2}}} =\frac {n _ {2}} {n _ {1}}

我想实现一个简单的程序来可视化法律.以来\ _ta _ {1} , n _ {1}n _ {1} 众所周知,这是我的计算方法 \ _ta _ {2}:

theta2 = asin((sin(theta1) * n1) / n2);
Run Code Online (Sandbox Code Playgroud)

问题是对于某些值 n _ {1}n _ {1}(例如分别为玻璃和空气的1.52和1.0),(sin(theta1) * n1) / n2对于较大的角度,结果可以大于1.0,这使得asin返回NaN.我应对这种情况的方法是检查是否(sin(theta1) * n1) / n2大于1.0,如果是这种情况,首先从中减去1,计算\ _ta _ {2}使用新值,然后添加0.5 * M_PI(或90.0度).有没有更好的办法?

c++ physics

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