js模拟地图最短路径导航算法可视化代码

代码语言:html

所属分类:动画

代码描述:js模拟地图最短路径导航算法可视化代码

代码标签: js 模拟 地图 最短 路径 导航 算法 可视化 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>地图最短路径导航算法可视化</title>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/tailwindcss.3.4.16.js"></script>
<link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/font-awesome-4.7.0/css/font-awesome.min.css">
  
  <!-- Tailwind 配置 -->
  <script>
    tailwind.config = {
      theme: {
        extend: {
          colors: {
            primary: '#3B82F6',
            secondary: '#10B981',
            obstacle: '#374151',
            visited: '#93C5FD',
            path: '#FBBF24',
            start: '#10B981',
            end: '#EF4444',
          },
          fontFamily: {
            sans: ['Inter', 'system-ui', 'sans-serif'],
          },
        },
      }
    }
  </script>
  
  <style type="text/tailwindcss">
    @layer utilities {
      .grid-cell {
        @apply w-8 h-8 border border-gray-200 transition-all duration-200 flex items-center justify-center;
      }
      .grid-cell-start {
        @apply bg-start text-white;
      }
      .grid-cell-end {
        @apply bg-end text-white;
      }
      .grid-cell-obstacle {
        @apply bg-obstacle;
      }
      .grid-cell-visited {
        @apply bg-visited;
      }
      .grid-cell-path {
        @apply bg-path;
      }
      .control-btn {
        @apply px-4 py-2 rounded-md transition-all duration-200 font-medium flex items-center gap-2;
      }
      .control-btn-primary {
        @apply bg-primary text-white hover:bg-primary/90;
      }
      .control-btn-secondary {
        @apply bg-gray-200 text-gray-800 hover:bg-gray-300;
      }
    }
  </style>
</head>
<body class="bg-gray-50 min-h-screen">
  <div class="container mx-auto px-4 py-8 max-w-6xl">
    <header class="mb-8 text-center">
      <h1 class="text-[clamp(1.8rem,4vw,2.5rem)] font-bold text-gray-800 mb-2">地图最短路径导航算法可视化</h1>
      <p class="text-gray-600 max-w-2xl mx-auto">直观展示Dijkstra和A*算法寻找最短路径的过程,可自定义地图、起点、终点和障碍物</p>
    </header>
    
    <div class="flex flex-col lg:flex-row gap-6">
      <!-- 控制面板 -->
      <div class="lg:w-1/4 bg-white rounded-xl shadow-md p-5">
        <h2 class="text-xl font-semibold mb-4 text-gray-800 flex items-center">
          <i class="fa fa-sliders mr-2 text-primary"></i>控制面板
        </h2>
        
        <div class="space-y-5">
          <!-- 算法选择 -->
          <div>
            <label class="block text-sm font-medium text-gray-700 mb-2">选择算法</label>
            <div class="flex gap-2">
              <button id="dijkstra-btn" class="control-btn control-btn-primary flex-1">
                <i class="fa fa-compass"></i> Dijkstra
              </button>
              <button id="astar-btn" class="control-btn control-btn-secondary flex-1">
                <i class="fa fa-star"></i> A*
              </button>
            </div>
          </div>
          
          <!-- 地图控制 -->
          <div>
            <label class="block text-sm font-medium text-gray-700 mb-2">地图操作</label>
            <div class="grid grid-cols-2 gap-2">
              <button id="clear-btn" class="control-btn control-btn-secondary">
                <i class="fa fa-trash"></i> 清空
              </button>
              <button id="random-btn" class="control-btn control-btn-secondary">
                <i class="fa fa-random"></i> 随机障碍
              </button>
              <button id="start-btn" class="control-btn control-btn-primary">
                <i class="fa fa-play"></i> 开始
              </button>
              <button id="reset-btn" class="control-btn control-btn-se.........完整代码请登录后点击上方下载按钮下载查看

网友评论0