📄 bextenddemo.java
字号:
/**
* 该类的功能是在Kuffner算法中,判断某节点的一个临近单元格是否扩展过,
* 如果没有扩展过,则对其进行扩展,创建对应的节点并加入open表中
* 如果已经扩展过,而该临近节点与该节点的关系是直交,则需要对其对应节点
* 的距离长度进行判断,如果该长度大于从目前节点扩展到该节点的长度,
* 则对该单元格对应的节点的属性进行更改
**/
package page;
import java.util.*;
public class BExtendDemo
{
public BExtendDemo ()
{
}
//对斜交子单元格的判定
public BExtendDemo (int[][] environ,int x,int y,int distance2,LinkedList open,int nowx,int nowy)
{
if(environ[x][y]==0) //如果为零,则说明该单元格可达,而且没有扩展过
{
environ[x][y]=distance2; //在数组中显示该节点的路径长度
open.add(new BNodes(x,y,nowx,nowy,distance2));
}
}
//对直交子单元格的判定
public BExtendDemo (int[][] environ,int x,int y,int distance1,LinkedList open,int nowx,int nowy,int i)
{
if(environ[x][y]==0) //如果为零,则说明该单元格可达,而且没有扩展过
{
environ[x][y]=distance1; //在数组中显示该节点的路径长度
open.add(new BNodes(x,y,nowx,nowy,distance1));
}
//不为零且是可达单元,说明之前已经扩展过,那么只需要对其距离进行比较处理即可
else if(environ[x][y]!=555)
{
//如果其距离长度大于distance1,则从open表中找出该节点,对其属性进行更改
if(environ[x][y]>distance1)
{
if(open.size()>0)
{
environ[x][y]=distance1;
BNodes now=(BNodes)new BChooseClosed(open,x,y).getNode();
now.setPre(nowx,nowy);
now.setDistance(distance1);
}
}
}
}//构造函数结束
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -