我正在尝试使用通常在乳胶中写为 的ket\ket{\psi}符号。但是,当在$$ ... $$. 当使用 编写时这也不起作用IPython.display。
我不断地陷入游戏/模拟解决方案中,以在时间流逝时找到距离,但这不是我想要的。
我正在寻找一个 O(1) 公式来计算(0 或 1 或 2)时钟时间,其中两个圆彼此之间的距离恰好为 r1+r2 。负时间是可能的。两个圆圈可能不会相撞,并且它们可能没有交叉点(就像两辆车在相反方向行驶太靠近道路中间时相互“碰撞”一样),这弄乱了我所有的 mx+b解决方案。
从技术上讲,单点碰撞应该是可能的。
我的代码大约有 100 行,我确信一定有更好的方法,但我什至不确定我的测试用例是否正确。我的初始设置是:
dist( x1+dx1*t, y1+dy1*t, x2+dx2*t, y2+dy2*t ) == r1+r2
Run Code Online (Sandbox Code Playgroud)
通过假设任何时间 t 的距离都可以用毕达哥拉斯计算出来,我想知道到中心的距离恰好是半径之和的两个时间点。我求解了 a、b 和 c 并应用了二次公式,我相信如果我假设它们是幻影对象,这将为我提供碰撞的第一时刻和碰撞的最后时刻,我可以假设每时每刻,它们都是重叠的。
我工作的前提是两个对象不可能在 t0 重叠,这意味着“相互卡住”的无限碰撞是不可能的。我还过滤掉斜率为 0 或无穷大时的特殊处理,这很有效。
我尝试计算当前对象 1 位于交点时的距离,它与对象 2 的距离,同样当 o2 位于交点时,但这不起作用,因为当它们不在交点时可能会发生碰撞他们的交集。
当斜率相等但大小不同时,我遇到了问题。
是否已经有一个简单的物理/数学公式了?
编程语言并不重要,伪代码会很棒,或者任何没有复杂符号的数学公式(我不是数学/物理人)......但没有更高阶的东西(我假设python可能有碰撞( p1, p2) 方法已经)
考虑以下用于在游戏积分过程中更新物理对象速度的语句:
velocity = velocity * 0.999f + acceleration;
Run Code Online (Sandbox Code Playgroud)
将速度乘以略小于一的值称为“阻尼”,即0.999f“阻尼系数”。据说阻尼对于消除由数值不稳定引起的多余能量是必要的。
我不明白这一点。我还可以使用1.001f“阻尼因子”,并声称它是为了添加由数值不稳定引起的缺失能量(而不是超过能量):
velocity = velocity * 1.001f + acceleration;
Run Code Online (Sandbox Code Playgroud)
正确的?我缺少什么?
我不是在这里谈论阻力,是吗?嗯,毕竟,0.999f阻力系数是去除与速度成比例的部分。阻尼只是阻力吗?
我正在尝试用 Java 编写太阳系模拟代码(使用现实世界的值)。首先,我利用牛顿万有引力公式和决定轨道时间的起始速度制作了一颗绕太阳旋转的行星。代码的工作原理如下:我有一个行星列表(假设太阳是一颗行星),在每一帧上我循环遍历该列表,并根据所有其他行星的总力对每个行星应用重力。每个行星在 2D 空间中都有一个速度矢量和一个位置矢量,并且执行最多工作的 2 个函数如下所示:
private Point2D getAttractionForce(Planet planet){
double distanceX = planet.x-this.x;
double distanceY = planet.y-this.y;
double distance = Math.sqrt(Math.pow(distanceX, 2)+Math.pow(distanceY, 2));
double force = SolarSystem.G*this.mass*planet.mass/Math.pow(distance, 2);
double angle = Math.atan2(distanceY, distanceX);
double forceX = force * Math.cos(angle);
double forceY = force * Math.sin(angle);
return new Point2D(forceX, forceY);
}
public void updatePosition(List<Planet> planets){
double totalForceX = 0;
double totalForceY = 0;
for (Planet planet : planets){
if (planet == this) continue;
Point2D force = getAttractionForce(planet);
totalForceX += …Run Code Online (Sandbox Code Playgroud) 我无法理解如何计算二维空间中移动圆的法线.我已经得到了我想要计算物体的速度法则(方向速度),但这就是我的大学代数思维过热的地方,任何我正在使用我所拥有的2d圈子中心点,半径,速度和位置.
最终我想要使用Vector2.Reflect方法从这个练习中获得更逼真的物理效果.
提前谢谢.
编辑:添加了一些代码尝试建议(没有用),可能误解了这个建议.在这里,我使用篮球和棒球,因此基地和篮子.我还有位置和速度,它被添加到位置以创建运动.
if ((Vector2.Distance(baseMid, basketMid)) < baseRadius + basketRadius)
{
Vector2 baseNorm = basketMid - baseMid;
baseNorm.Normalize();
Vector2 basketNorm = baseMid - basketMid;
basketNorm.Normalize();
baseVelocity = Vector2.Reflect(baseVelocity, baseNorm);
basketVelocity = Vector2.Reflect(basketVelocity, basketNorm);
}
basePos.Y += baseVelocity.Y;
basePos.X += baseVelocity.X;
basketPos.Y += basketVelocity.Y;
basketPos.X += basketVelocity.X;
basketMid = new Vector2((basketballTex.Width / 2 + basketPos.X), (basketballTex.Height / 2 + basketPos.Y));
baseMid = new Vector2((baseballTex.Width / 2 + basePos.X), (baseballTex.Height / 2 + basePos.Y));
Run Code Online (Sandbox Code Playgroud) 我需要在Flash中创建一个小骰子游戏.随机数生成器是外部的,我必须创建一个具有该结果的3D逼真骰子动画.
我正在使用Away3D引擎和JigLib进行物理学研究.到目前为止,我所拥有的最好的想法是进行许多模拟并创建结果列表及其相应的输入参数(初始位置,初始方向和添加到RigidBody的力).
这不是很好.有时对于相同的参数,结果是不同的.
做这个的最好方式是什么?
我有N分.每个点都有X和Y坐标.
我需要找到这个点的质心X和Y. 你能给我一个算法来完成这个任务吗?
Leibniz的符号可能只是有点混乱,特别是在物理问题中,时间是功能被区分的唯一变量.另外,是否有可能不显示(t)一个像x(t)sympy仍然理解x的功能,t并将其视为这样的功能?
需要一些帮助来解决这个程序的一个小问题.我已经在C++的物理学中创建了SEMF来计算公式,一切都很好,但我的BE公式中包含了a5.
它说错误:标识符"a5"是未定义的,我知道这意味着什么,但如果我输入偶数甚至奇数或奇数奇数,我将如何从选择语句中获取a5.
#include <iostream>
#include <cstdlib>
#include <math.h>
using namespace std;
int main()
{
int A, Z;
// Main body of Semi-Empirical Mass Formula
cout <<"Enter the mass number A: ";
cin >> A;
cout <<"\n";
cout <<"Enter the atomic number Z: ";
cin >> Z;
cout <<"\n";
// Constants from formula, units in MeV(millions of electron volts)
double a1 = 15.67;
double a2 = 17.23;
double a3 = 0.75;
double a4 = 93.2;
if(Z % 2 == 0 && …Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个计算机程序,可以模拟氡-222的1,000,000个原子的衰变(进入Pol -ium-218进入Lead-214进入铋-214进入铅-210).每个原子在一个单位时间后有0.000126的机会腐烂成Pol -218.我有一个1,000,000 0 m的列表分配给变量Rn来表示Radon-222.然后,为了确定特定元素是否衰减,我选择1到1,000,000之间的随机整数:如果此数字小于126,则Rn [j]的值从0切换为1(衰减),并且我们将0添加到在单位时间之后,我预计会有大约126个Pol原子,在另一个单位时间之后,我们应该有大约126个额外的Pol原子,但是其中一些可能会腐烂到Lead-214中. .
我们将时间视为此建模中的离散实体.在此处查看10个单位时间后的理想值列表.
这是一个有效的代码,但速度很慢.
import random
def one(s):
count=0
for i in range(len(s)):
if s[i]==1:
count+=1
return count
Rn=[1]*1000000
Po=[0]*1000000
Pb214=[0]*1000000
Bi=[0]*1000000
Pb210=[0]*1000000
print([0,1000000,0,0,0,0])
for i in range(1,100):
for j in range(len(Rn)):
rndecay=random.random()
if rndecay<=0.000126:
Rn[j]=2
for j in range(len(Po)):
if Po[j]==1:
podecay=random.random()
if podecay<=0.203:
Po[j]=2
if Rn[j]==2 and Po[j]==0:
Po[j]=1
for j in range(len(Pb214)):
if Pb214[j]==1:
decay214=random.random()
if decay214<=0.0255:
Pb214[j]=2
if Po[j]==2 and Pb214[j]==0:
Pb214[j]=1
for j in range(len(Bi)):
if Bi[j]==1:
bidecay=random.random()
if …Run Code Online (Sandbox Code Playgroud)