⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basicdijkstra.java

📁 BDijkstra算法的java实现。使用工具是eclipse
💻 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 + -