Articles of 算

实现在一维数组中为一个三角形网格find一个索引

我正在使用while循环在一维数组中find一个索引,是否有一个更容易,更less的时间和/或math方法来find索引? 考虑下一个网格: 4 o |\ | \ | \ 3 o—o |\ |\ | \ | \ | \| \ 2 o—o—o |\ |\ |\ | \ | \ | \ | \| \| \ 1 o—o—o—o |\ |\ |\ |\ | \ | \ | \ | \ | \| \| \| \ 0 […]

在基于网格的系统中,用户可以建造自己的墙壁来创建建筑物,您如何确定哪些部分在室内?

我已经四处寻找解决这个问题的algorithm,但我似乎无法find任何东西。 在我正在做的游戏中,数据被保存在一个网格中。 该网格内的某些方格可以设置为墙壁,以便用户可以创建建筑物。 我想知道的是,我怎么能写一个algorithm来确定网格的哪些部分在室内,也就是说,在建筑物内,哪些部分在室外。 提前感谢您的任何建议。

填补网格中的空白

我有一组地形精灵可以代表地形: 平面 南北直线悬崖(x 2允许倾斜方向) 东西直线悬崖(x 2允许倾斜方向) 凸西北悬崖 凸北东悬崖 凸南东悬崖 凸南西悬崖 凹西北悬崖 凹北东悬崖 凹东南悬崖 凹西南悬崖 有我的地形源是一个高度的地图,我正在寻找与上面的精灵组成的轮廓。 悬崖拼贴将被放置在阈值以下的边界上的阈值瓷砖上。 但是,当我通过阈值分割高度图时,我会得到不能用瓦片集表示的地形特征,例如: ….. … 1 1 1 … … 0 0 0 … … 1 1 1 … ….. 其中1代表高于阈值的瓦片,0瓦片低于瓦片。 我的精灵集合缺乏代表直接邻居(在这种情况下,北方和南方的邻居)超过门槛的瓦片。 我正在寻找一个很好的方法来摆脱这些情况。 我已经试过循环遍历所有的列/行,寻找1 0 1组合,并将高度图值改为高于阈值。 最后,我不介意填补“空白”的方式,只要最终结果可以用我的瓷砖组合来表示。 记住对角线间隙的情况必须考虑。 例如: ….. … 0 0 1 … … 0 0 0 … … […]

如何查找对象看不到的网格单元格

我正在写一个VB.NET程序。 我有一个网格视图,它是由多个称为网格单元的小单元组成的。 在网格视图中,我放置了一个障碍(红色框)和一个观察者(蓝色框)。 我的任务是find如何find蓝框看不到的网格单元格。 你可以参考下面的截图。 请注意,黄色方块形状不是必需的。 1)我已经考虑遍历网格视图中的所有网格单元格,并检查它们是否被蓝框看到。 但是,在网格视图中可能会有数百万个网格单元,并且循环遍历每个网格单元会花费大量时间并且效率不高。 除了在视图中的所有网格单元中循环以外,还有没有更好的方法来定位网格单元格,而不是通过蓝色框显示? 谢谢。

在基于六角网格的游戏中寻找path

我正在用六角格子制作一个TBS。 玩家可以使用网桥将单位从一个hex移动到另一个,这将随机生成。 我为我的网格使用了三次和轴向坐标系, 在这里有很好的描述。 我不知道如何让hex理解与另一个连接,然后计算单位的最佳path。 我不知道如何处理这个问题 – 我应该在我的hex类中为桥接器创建6个插槽,然后计算path,还是应该使移动系统以某种方式运行,然后使用桥接器作为“阻止器”?

如何从环和索引计算hex坐标?

我正在尝试在六角网格中实现视场(FOV)。 我从这里使用立方体坐标系。 然后,我使用阴影投射从这里findFOV。 我在下面的图像中有一个系统。 在角落的数字是坐标。 中心的数字格式为[Ring index],[Hex Index] 。 我需要使用环索引和hex索引来计算用于阴影投射的角度。 我花了好几天的时间,但是还是找不到让这两组数字可以转换的方法。 如何从环和索引计算hex坐标?

在迷宫中find一个移动的目标

我正在做一个有点蛇和pacman混合的游戏。 基本上,两个玩家走过迷宫,每次拿起一块糖果,一个立方体被添加到他们的尾巴。 如果一个玩家碰到另一个玩家的尾巴,那么他会为自己抢断这个棋子,当一个玩家拥有所有棋子时,游戏结束。 现在他们都是随机移动的,除非有一块糖果离开,而不是它们的尾巴。 我试图find一个方法/algorithm(最好每个玩家不同的方法)为双方的目标/避免其他玩家。 有什么建议?

将网格拆分为随机path

我需要一个algorithm来将网格拆分为随机生成的path,其中: path是最多连接两个相邻单元的单元的列表。 path具有最小和最大长度。 网格中的所有单元格都属于一个path。 网格可能有差距。 该algorithm必须是随机的,没有人为偏差。 我的意思是: 对于path位置/轨迹应该没有偏差(例如,如果path始终始于(0, 0) ,path始终邻近于其他pathpath末端开始,则错误等) path长度不应有偏差。 例如,如果较长的path适合,则algorithm不能偏好较短的长度。 由于电网状态(甚至中间状态)的自然偏差是好的(不可避免的?)。 input是width , height , number of gaps 。 完成网格示例: 1–1 0 4–4 | | | 1–1 0 4–4 | | | 2 1 0 4–4 | | 2 0–0 3–3 | | 2–2 3–3–3 有间隙的网格示例: 0–0–0 2–2 | | . 1 0 […]

stream场密度转换

我试图实现stream场导航,如http://grail.cs.washington.edu/projects/crowd-flows/中所述,但是我不明白纸张的图4中的密度函数应该如何处理单位半径。 有没有人执行过,可以提供更多的信息? 这是有问题的部分: 他们的algorithm似乎只使用4个单元,指向单元的左下角,那么这种内核需要多次应用? 谢谢。

确定网格上的一组瓦片是否形成封闭的形状

给定网格上的一组瓦片,我想确定: 如果瓦片是封闭的数字 如果当您将棋盘的边数作为图的边缘时,棋子会形成一个封闭的graphics 如果前面两个陈述中的任何一个是真实的,那么附加的瓦片落入所包围的图中,则形成初始瓦片。 玩家将首先按下一个瓷砖,然后将他们的手指拖动到其他瓷砖,创建一个相同颜色的瓷砖链。 我会检查,看看下一个瓷砖是否有效。 防爆。 如果玩家开始红瓦片,他们唯一的下一个有效的移动是一个相邻的红瓦片(对角线计数)。 当用户抬起手指时,我需要能够检查上面的3个项目。 所以我最初的想法是,自从我每次去检查链条的有效性以来,当玩家举起手指时,我可以检查第一块和最后一块瓷砖是否相邻。 (我已经知道它们是同一种颜色的)。如果它们相邻,我会有一个预感,那就是我做了一个封闭的人物,我会来这里试试看看我是否错过了一件大事,某种逻辑/mathcertificate,我的预感是正确的(或者是一个certificate它不正确的例子)。 但是当我想到第二个项目的时候,我也必须考虑到使用板子边缘作为封闭graphics的一侧的链子。 在这种情况下,链中的第一个和最后一个项目不会相邻,但我仍然有一个封闭的数字。 所以现在我回到原点了。 我可以用这个网格坐标系来做什么来确定它们是否包含一个封闭的数字? 而且一旦我知道我有一个封闭的数字,那么最好的办法是获得一个所有的瓷砖在其范围内的附加列表? 上面我画了我期望的这个testing的4个可能的结果的图片。 链条没有封闭的graphics。 链条确实是一个封闭的数字。 如果将板的边数作为图的边(或多边),则链确实形成封闭的graphics。 该链确实是一个封闭的数字,但是有额外的数据点(由用户有效地select作为链的一部分),这些数据点不是创建的数字的一部分。 案例4是最棘手的,因为你必须提取“额外”的链接来find封闭的graphics和落在它里面的碎片(而不是围绕“未封闭”的区域)。 所以…任何人都有一个好方法来解决这个问题,或者只是我的一个起点? 在这一点上,我有点圈子,可以使用另一套眼睛。