📄 basicdijkstra.java
字号:
/**
* Kuffner提出的算法,即使用Dijkstra算法在栅格中进行路径规划,
* 利用栅格的特点及栅格中最短路径的特点,对Dijkstra算法进行改进
* 直交节点只需要扩展时只需要考虑三个邻近节点,
* 斜交节点扩展时需要考虑五个节点,
* 所以利用栅格的特点,在扩展邻近节点时,Dijkstra算法的效率提高了百分之五十
**/
package page;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* Kuffner类,Kuffner算法的主类部分
**/
public class BasicDijkstra extends JFrame
{
public static int MaxM=50; //环境图中的最大行数
public static int MaxN=50; //最大列数
public static int startx=25; //开始节点的X值
public static int starty=25; //开始节点的Y值
public static int goalx=38; //目标节点的X值
public static int goaly=38; //目标节点的Y值
private JPanel contentPane;
JButton b[][]=new JButton[MaxM][MaxN]; //创建xx*yy个JButton的引用对象,和一个b引用对象指向该数组的第一个位置
int environ[][]=new int[MaxM][MaxN]; //用于一个整型数组保存环境信息
//构造函数,给出环境信息
public BasicDijkstra()
{
super("BasicDijkstra Method");
contentPane=(JPanel)this.getContentPane(); //获得JFrame的内容窗格
GridLayout layout=new GridLayout(MaxM,MaxN); //构造一个新的布局管理器layout
contentPane.setLayout(layout); //将内容窗格的布局管理器设为GridLayout类型
//创建并设置按钮组的属性
new CreatArrayForAll(b,environ,contentPane,MaxM,MaxN,startx,starty,goalx,goaly);
//调用NDijkstra进行路径规划
new BDijkstra(b,environ,MaxM,MaxN,startx,starty,goalx, goaly);
}
//主函数部分
public static void main(String args[])
{
BasicDijkstra app=new BasicDijkstra();
app.setSize(300,300);
app.show();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -