问题标签 [boids]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 当我运行 AgentPy 代码时,Vscode 不会显示任何窗口
我正在使用 agentpy 运行椋鸟群模拟。该代码在 agentpy 网站上提供,但是当我将其复制到 vs 代码中并运行/调试它时,它似乎不起作用。https://agentpy.readthedocs.io/en/latest/agentpy_flocking.html#About-the-model
python - 在 Pygame 中使 Circle 正确显示在屏幕上的问题
我觉得我对Pygame的理解有点薄弱。对于代码的复杂性(因为这是由老师给出的)或只是如何至少使障碍可见,我将不胜感激。
以上是我实际绘制并尝试绘制圆圈的地方。该类CircularObstacle
是一个非常简单的类,如下所示:
问题是,只有当 boids 越过它时,圆圈才会自己绘制,这真的很奇怪。我认为这与 pygame 的设置方式以及 Surfaces 和所有内容有关,所以下面是 main.js 中的所有代码。当然,障碍物并没有按预期工作,但我计划稍后解决这个问题,首先我想至少显示一个圆圈。以下是我的完整代码,因为我认为这对于解决问题至关重要:
python - 尝试将 pygame 中的避障功能添加到 Craig Reynolds boid 模拟中
下面是我的方法的代码,在该方法中,我试图让 boids 不与障碍物发生碰撞,同时尽可能少地改变它们的路径:
现在我将解释我的方法:为了避开障碍物,我首先确定如果 boid 继续沿当前方向移动,它是否会与它发生碰撞。为此,我计算了三个角度。角 a 是速度与连接 boid 到障碍物中心的矢量之间的角度,角 b 和 c 是从 boid 到圆的两条切线与连接 boid 的矢量之间的角度 do障碍物的中心。
下面是我的简单障碍类:
我计算圆切线的方法是使用此链接中的算法: Find tangent points in a circle from a point
要么我的整个想法是错误的,要么实施是错误的。也许我什至不应该改变速度矢量?我的孩子们刚刚通过障碍物,他们的行为变化为 0。另外,我知道旋转直到不发生碰撞的想法是错误的,因为这没有考虑到 boid 所面对的方向(因此它们可能以效率较低的方向旋转),但是现在这个问题更小(尽管我当然欢迎任何帮助)。
python - python Pygame中继承子类的问题
在我的 boid 模拟中,我有一个Vehicle
具有如下属性的类:
然后,我有这个 Vehicle 类的两个子类,就像这样,每个基本上看起来像这样:
我创建了一个捕食者对象和一个 boid 对象,但所有对象都是灰色的,而不是 1 个灰色和 5 个粉红色。有什么帮助吗?如果您需要任何额外的代码,请发表评论。