/// <summary> /// Adds the open node.新加入node,list的最后一位是f值最小的 /// </summary> /// <param name="node">Node.</param> /// <param name="from">From.</param> /// <param name="to">To.</param> /// <param name="fValueMap">F value map.</param> /// <param name="openList">Open list.</param> void addOpenNode(string key, CLAStarNode node, CLAStarNode from, CLAStarNode to, ref Dictionary <int, float> fValueMap, ref List <CLAStarNode> openList) { float fval = distance(node, from) + distance(node, to); fValueMap[node.index] = fval; int i = openList.Count - 1; for (; i >= 0; i--) { float fval2 = fValueMap[openList[i].index]; if (fval <= fval2) { break; } } //列表最后是F值最小的 openList.Insert(i + 1, node); //设置该点的父节点,以便路径回溯时用 node.setParentNode(from, key); }