Tag: 图算法

将集合层次结构可视化为颜色编码图形

我最近一直在阅读有关Java和Javascript图形库的相关内容,但我还没有找到一个很好的方法来做我想做的事情。 基本上我有一组关于一堆元素的集合(最多几千)。 这些组可以完全或部分重叠,完全覆盖或完全彼此不相交。 我想要做的是显示以下信息: 集合的大小(与其他集合相关) 根据它所涵盖的元素计算的集合的“热量”值(颜色代码) 单个图形中集合的完整拓扑(以便向用户显示重叠,交叉点等) 编辑:也许我应该举例说明我的意思是集合和元素以及部分重叠的层次结构。 以下是我处理的那种集合的过度简化版本(请注意,数字1 – 10和字母a – h和X表示彼此相当的元素): Set1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} Set2 = {1, 2, 3, 4, 5, 6} Set3 = {1, 2, 3} Set4 = {1, 4, 5, 6, 7} Set5 = {a, b, c, d, e, f, g, […]

2D航路点寻路:WP的组合从curLocation到targetLocation

请花点时间了解我的情况。 如果不可理解,请在评论中告诉我。 我有一个Waypoints的ArrayList。 这些航点不是任何顺序。 航点具有以下属性: {int type, float z, float y, float x, float rotation} 这适用于三维世界,但由于我的寻路不应该关心高度(因此将世界视为二维世界),因此忽略y值。 轮换对于这个问题并不重要。 在该二维世界中,x表示x轴,z表示y轴。 如果x增加,则世界中的物体向东移动。 如果x减小,则世界中的物体向西移动。 如果z增加,则世界中的物体向北移动。 如果z减小,则世界中的物体向南移动。 因此,这些“新”航路点可以简化为: waypoint = {float x, float y} 。 现在,这些航点表示物体的X轴(x)和Y轴(z)位置。 此外,还有一个当前位置: curLocation = {float x, float y}和目标位置: tarLocation = {float x, float y} 。 这就是我想要的: 在以下严格条件下从curLocation到tarLocation所有航路点组合(也称为:路径或路径) : 每个航路点之间的距离不得大于(float) maxInbetweenDistance 。 这包括从curLocation到第一个航点的初始距离以及从最后一个航点到tarLocation的距离。 如果不可能有这样的航点组合,则应返回null。 当在距离通往目标航点的航点的maxInbetweenDistance内找到多个航路点时,应选择最近的航点(如果距离稍远一点的替代航路maxInbetweenDistance导致距离maxInbetweenDistance的新航路点也更好回)。 返回航路点组合(路径)的顺序应该是从最短路径(最小距离)到最长路线(最大距离) […]

扭曲的最短路径

我有n个顶点和m无向加权边(重量代表分钟)。 每个顶点包含在该顶点上喝咖啡所需的分钟数。 我想确定从顶点v到顶点w所需的最短时间(分钟),但是我必须在从v到w路上的一个顶点上喝咖啡。 示例 : (顶点中的数字是喝咖啡所需的分钟数,边缘上的重量表示行进此边缘所需的分钟数) 从v到w并在途中喝咖啡,输出最小的必要时间(输出应为30)。 我目前的方法是找到Dijkstra的最短路径(总结该路径上所有边的权重),然后将该路径上具有最低咖啡时间的顶点值添加到我的结果中,以获得总量从v到w必要时间。 我的方法不起作用,这是我的方法失败的一个例子(我的方法的结果是12分钟,实际结果应该是6分钟): 如何确定从顶点v到w的最短时间,以及我需要在路径上喝咖啡的约束?