我目前正在C#中开展一个项目,在那里我玩行星万有引力,我知道这是一个关于它的最重要的话题,但我喜欢挑战.我一直在阅读牛顿定律和Keplers定律,但有一点我无法弄清楚如何获得正确的引力方向.
在我的例子中,我只有2个身体.卫星和行星.这是为了简化它,所以我可以把握它 - 但我的计划是让多个物体相互动态相互作用,并希望最终得到一个有点逼真的多体系统.
当你有一个轨道时,那么卫星就有一个引力,那就是在行星的方向,但那个方向并不是一个常数.为了更好地解释我的问题,我将尝试使用一个例子:
假设我们有一颗卫星以50米/秒的速度移动,并以10米/秒/秒的速度朝着地球加速,半径为100米.(所有理论数字)如果我们然后说帧率是1,那么在一秒之后,对象将是50个单位向前和10个单位向下.
当卫星在一个框架中移动多个单位并且大约半径的50%时,重力方向在该框架内已经移动很多,但施加的力仅仅是"向下".这会产生很大的误差,特别是如果物体移动半径的很大一部分.
在我们的例子中,我们可能需要我们的重力方向基于我们当前位置和该帧结束时的位置之间的平均值.
怎么会计算这个呢?
我对三角学有基础知识,但主要关注三角形.假设我很愚蠢,因为与你们中的任何人相比,我可能都是.
(我之前提出了一个问题,但最后删除它,因为它产生了一些敌意,基本上没有那么好的措辞,并且一般都是一般的 - 这不是一个特定的问题.我希望这更好.如果没有,那么请告诉我,我在这里学习:))
仅供参考,这是我现在运行的功能:
foreach (ExtTerBody OtherObject in UniverseController.CurrentUniverse.ExterTerBodies.Where(x => x != this))
{
double massOther = OtherObject.Mass;
double R = Vector2Math.Distance(Position, OtherObject.Position);
double V = (massOther) / Math.Pow(R,2) * UniverseController.DeltaTime;
Vector2 NonNormTwo = (OtherObject.Position - Position).Normalized() * V;
Vector2 NonNormDir = Velocity + NonNormTwo;
Velocity = NonNormDir;
Position += Velocity * Time.DeltaTime;
}
Run Code Online (Sandbox Code Playgroud)
如果我说得很糟糕,请让我重新措辞部分 - 英语不是我的母语,当你不知道正确的技术术语时,特定的主题可能很难说.:)
我有一种预感,这是在keplers第二定律中涵盖的,但如果是,那么我不知道如何使用它,因为我不完全理解他的定律.
谢谢你的时间 - 这意味着很多!
(如果有人看到我的功能出现多重错误,那么请指出它们!)
我目前正在使用 Heroku CI 来运行我的 Django 测试:
python3 manage.py test --fail-fast
但是,在 heroku CI 上运行这些时,当 django 系统尝试呈现设置时,我会得到一个无限循环:
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/app/investorsuite/middleware.py", line 11, in middleware
response = get_response(request)
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 36, in inner
response = response_for_exception(request, exc)
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 95, in response_for_exception
exc_info=sys.exc_info(),
File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/log.py", line 228, in log_response
exc_info=exc_info,
File "/app/.heroku/python/lib/python3.6/logging/__init__.py", line 1337, in error
self._log(ERROR, msg, …
Run Code Online (Sandbox Code Playgroud) 在Dart,我正在开发一款网页游戏.在这里我需要一个函数,我可以从URL获取数据,就像你在PHP中获得它一样.我该怎么做?
例如,当我加载我的网页游戏时,我会将以下内容附加到我的网址:?id=15&randomNumber=3.14
.如何将它们作为原始字符串(首选)或其他格式在Dart中获取?
所以我正在创建一个应用程序,您可以在其中找到在各个位置发生的活动
在django-admin页面上,我希望能够修改活动(有效).
但是活动有一个开始时间 - 我希望这个开始时间与位置在同一时区.
因此,我希望它在活动管理页面上显示与位置相同的时区中的开始时间,但是当保存时,它应该转换为UTC时间.
starttime采用内联formset,因为它可以有多个开始时间.
我找到了一种在保存对象时更改日期时间的方法,但是当它在内联函数中呈现时,我无法找到修改它的方法.
如何修改管理页面中呈现的数据?
django ×2
python ×2
c# ×1
dart ×1
django-2.2 ×1
django-admin ×1
heroku-ci ×1
physics ×1
python-3.x ×1
trigonometry ×1
url ×1
vector ×1