问题标签 [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.
algorithm - 关于植绒和群算法有哪些好的资源?
不久前,我读了小说《猎物》 。尽管它绝对属于有趣的科幻小说领域,但它激起了我对群体/群体人工智能的兴趣。我最近在 reddit 上看到了这些演示的一些示例,例如Nvidia 飞机植绒视频和Chris Benjaminsen 的植绒沙箱(来源)。
我有兴趣编写一些涉及群体或植绒 AI 的模拟演示。我在大学里学过人工智能,但我们从未接触过模拟蜂群/成群行为的主题,快速翻阅我的教科书发现它没有被讨论过。
植绒沙箱
有哪些可靠的资源可以用来学习围绕群/群算法的一些更精细的点?有没有人在这个领域有任何经验,所以他们可以在一本非常适合的 AI 书籍或已发表的论文方面为我指明正确的方向?
c# - XNA 2D 视野
我正在 XNA 中开发基于植绒的 2D 游戏。我已经实现了 Craig Reynold 的植绒技术,现在我想动态地为该组分配一个领导者,以引导它朝着目标前进。
为此,我想找到一个前面没有任何其他代理的游戏代理并使其成为领导者,但我不确定这方面的数学。
目前我有:
agentContext.ViewAngle 是一个弧度值,我尝试使用它来尝试获得正确的效果,但这主要导致所有代理都被分配为领导者。
谁能指出我正确的方向来检测一个实体是否在另一个实体的“锥形”视图中?
iphone - 我在哪里可以找到一些用于 iO 的 Boids 算法的开源实现?
这个问题说明了一切:我正在寻找最初在 Boids 论文中描述的算法(或衍生算法)的工作、开源、实现。
java - 植绒行为问题
昨天我遇到了 Craig Reynolds 的Boids,随后我想我会尝试用 Java 实现一个简单的 2D 版本。我根据康拉德·帕克的笔记整理了一个相当基本的设置。
但是,我得到了一些相当奇怪(在我看来)的行为。目前,我的身体相当快地移动到粗糙的网格或格子中,然后当场开始抽搐。我的意思是它们会四处移动并且非常频繁地旋转。
目前,我已经实现:
- 结盟
- 凝聚
- 分离
- 限速
最初,我的 boids 随机分布在屏幕区域(与 Parker 的方法略有不同),它们的速度都指向屏幕区域的中心(请注意,随机初始化的速度给出相同的结果)。改变速度限制值只会改变物体进入这个模式的速度,而不是模式的形成。
在我看来,这可能是:
- 我正在使用的参数的结果(现在我的代码如 Parker 的伪代码中所述;我还没有尝试过由 Reynolds 描述的角度和半径定义的影响区域。)
- 我需要实施但不知道的东西。
- 我做错了什么。
预期的行为将更像是在 Reynolds 的 boids 页面上的小程序中发生的事情的二维版本,尽管现在我还没有实现任何方法来将 boids 保持在屏幕上。
有没有人遇到过这个?关于原因和/或如何解决它的任何想法?如果有帮助,我可以发布相关行为的 .gif 文件。
algorithm - 昆虫跟随领导者 - 我可以为此实施 Boids 算法吗?
我想说明昆虫如何在二维中跟随它们的领导者。我怎样才能做到这一点?是否可以使用 Boids 算法来做到这一点?或者也许有人知道另一种算法,专门为此设计的?
java - 适用于 Java 中植绒 Boid 的 2D 空间数据结构
我正在做一个植绒模拟,只是为了好玩,我想对其进行一些优化。需要工作的区域是在给定的 boid 附近寻找 boid。我认为要做到这一点,某种适合该任务的空间数据结构将是我最好的选择(请参阅此处并向下滚动一下。)。
无论我做什么,我都会用 Java 从头开始实现自己。这样一来,我将比仅调用一堆库函数了解更多有关我选择的数据结构的信息。
我知道R-Trees、kd trees和Quadtrees。在我看来,它们都是可行的选择。但我对这些数据结构没有任何经验,我不完全确定什么最适合我的目的。我不需要这种规模的任何东西——我说的可能是几百个,最多可能是一千,而不是一百万,尽管请记住,我最终可能最终会在 Android 手机上运行它。
请为此推荐一个数据结构(当然不限于上述),并给我一个选择它而不是替代方案的充分理由。
是的,我见过这个问题。不,我对答案不满意——根本没有给出任何理由。
哦,还有一件事——正如标题所说,这仅适用于二维。
javascript - 通过 Javascript 和 HTML5 Canvas 更新背景图片
Javascript 远不是我的强项之一。因此,如果我的问题对你们中的许多人来说非常有帮助,我深表歉意。
我正在尝试通过 Javascript 和 HTML5 Canvas 实现 Boid。尽管已经建立了植绒行为,但应用程序在空白背景上看起来相当简单。
出于这个原因,我试图使用图像作为我的背景,但遇到了困难。
如果有人知道如何在上述功能中绘制背景图像,请告诉我:)
algorithm - 了解速度并实施 Boids 算法?
因此,我正在根据此处的伪代码将 Boids 移植到 Brightscript 。
我试图了解所涉及的数据结构,例如 Velocity 是单个值,还是 3D 值?(即velocity={x,y,z}
)
似乎伪代码似乎混淆了这一点,有时它有一个包含向量和单值项的方程:
如果 Velocity 是一个三方值,那么这是有道理的,但我不确定。
所以,我的第一个问题:基于上面的伪代码,这是单个 boid 的正确数据结构吗?
其中pc
= 感知中心,和pv
= 感知速度。
我已经实现了一个vector_add
、、、vector_sub
和vector_div
向量布尔函数。
我从这个伪代码开始的原因是我找不到任何其他可读的东西,但它仍然给我留下了很多问题,因为没有为每个变量明确定义数据结构。
(编辑)这是我正在谈论的一个很好的例子:
如果b.position - b[j].position
都是 3D 坐标,除非它们是 3D 坐标,否则它们如何被视为“小于 100” < {100,100,100}
?
python - Python:赋值错误之前引用的局部变量
我一直有错误
UnboundLocalError:分配前引用的局部变量“new_speedDx”
在尝试运行以下功能时:
在这个函数中,boid1 是一个有 4 个元素(xpos、ypos、xvelocity、yvelocity)的向量,所有大写的变量都是常数(数字)。有人知道如何解决这个问题吗?我在互联网上找到了许多可能的解决方案,但似乎没有任何效果..
python - python中的Boid;计算两个物体之间的距离
我正在尝试用 Python 中的 boids 对飞行中鸟类的行为进行编程。我还没有找到太多,但目前我被困在定义两个 boid 之间距离的函数上。它必须使用公式 (a,b) = sqrt( (a_x - b_x)^2 + (a_y - b_y)^2) ) 其中 a 和 b 是我必须计算距离的两个向量, a_x 和 b_x 是向量的 x 分量,a_y 和 b_y 是 y 分量。我收到有关公式中索引的错误。我已经尝试了多种方法来解决,但我就是不知道该怎么做......
这是我到目前为止所得到的。我对编程很陌生,所以我只知道基础知识,我不确定我所拥有的其余部分是否还可以。