未分类
A*估价函数
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | //曼哈顿估价法 private function manhattan(node:Node):Number {     return Math.abs(node.x - _endNode.x) * _straightCost + Math.abs(node.y + _endNode.y) * _straightCost; } //几何估价法 private function euclidian(node:Node):Number {     var dx:Number=node.x - _endNode.x;     var dy:Number=node.y - _endNode.y;     return Math.sqrt(dx * dx + dy * dy) * _straightCost; } //对角线估价法 private function diagonal(node:Node):Number {     var dx:Number=Math.abs(node.x - _endNode.x);     var dy:Number=Math.abs(node.y - _endNode.y);     var diag:Number=Math.min(dx, dy);     var straight:Number=dx + dy;     return _diagCost * diag + _straightCost * (straight - 2 * diag); } |