首页 > 编程语言 >用python画出网格图与路线图

用python画出网格图与路线图

时间:2022-08-23 00:23:07浏览次数:78  
标签:13 15 network python 画出 网格 next 19 path

 

 

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.pyplot import MultipleLocator
import copy
import pylab
import random

network = [[0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0],
           [0,1,1,0,1,0,1,1,1,0,0,0,1,1,1,1,0,0,0,0],
           [0,1,1,0,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,0],
           [0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0],
           [0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0],
           [1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0],
           [1,1,1,1,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0],
           [1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],
           [1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0],
           [0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0],
           [0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0],
           [0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0],
           [0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0],
           [0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0],
           [0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0],
           [1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0],
           [1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1],
           [0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,0],
           [0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,0],
           [0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0]]

def return_axis(path):# 将坐标转换为axis
    path_x = []
    path_y = []
    for item in path:
        path_x.append(item[0])
        path_y.append(item[1])
    return path_x, path_y

def draw(network, path):
    n = len(network)
    network_draw = np.zeros((n,n))
    for i in range(n):# 换色
        for j in range(n):
            if network[i][j] == 0:
                network_draw[i][j] = 1
            else:
                network_draw[i][j] = 0
    mat = np.array(network_draw)
    plt.matshow(mat, cmap=plt.cm.gray)# 着色,黑白灰
    x = np.array(range(n))
    y = x
    for item in path:
        pylab.scatter(item[0], item[1],color='green')# 画点
    path_x, path_y = return_axis(path)
    plt.plot(path_x, path_y, 'g-', color='green')# 画折线
    # pylab.xticks(x)
    # pylab.yticks(y)
    # plt.grid()

    plt.show()

def accord(network, point, dx, dy, path):# 下一跳符合矩阵条件,且不在路径中、不为墙
    n = len(network)
    # print(point,dx,dy,path)
    next_x = point[0] + dx
    next_y = point[1] + dy
    # print([next_x, next_y],path,True)
    if next_x >= 0 and next_x < n and next_y >=0 and next_y < n and \
        network[next_x][next_y] != 1 and [next_x, next_y] not in list(path):
        return True
    return False

path = [[0,0],[1,0],[2,0],[3,0],[3,1],[3,2],[3,3],[3,4],[4,4],[5,4],[5,5],
        [5,6],[5,7],[6,7],[7,7],[8,7],[9,7],[10,7],[11,7],[12,7],[13,7],
        [13,8],[13,9],[13,10],[13,11],[13,12],[13,13],[13,14],[14,14],
        [15,14],[15,15],[15,16],[15,17],[15,18],[15,19],[16,19],[17,19],
        [18,19],[19,19]]
draw(network, path)

 

标签:13,15,network,python,画出,网格,next,19,path
From: https://www.cnblogs.com/ljy1227476113/p/16614730.html

相关文章

  • python学习Day50
    Day50今日内容概要前端简介前端与后端前端的学习前端核心基础HTTP超文本传输协议四大特性数据格式响应状态码HTML简介简介HTML注释语法HTML文件结构......
  • 再探 游戏 《 2048 》 —— AI方法—— 缘起、缘灭(7) —— Python版本实现的《2048》游
    《2048》游戏在线试玩地址:https://play2048.co/  如何解决《2048》游戏源于外网的一个讨论帖子,而这个帖子则是讨论如何解决该游戏的最早开始,可谓是“缘起”:Whatis......
  • 【2022-08-22】python前端开发(一)
    python前端开发(一)前端简介前端与后端前端与用户直接交互的操作界面都可以称之为是前端后端不直接与用户交互,内部真正执行核心业务逻辑的......
  • python中的匿名函数-lambda表达式
    匿名函数"""匿名函数-没有名字的函数-用lambda表达式创建匿名函数"""使用场景"""使用场景-需要一个函数,但又不想费神去命名这个函数-通常在这个函数只......
  • Python的几种lambda排序方法
    1.对单个变量进行排序#lst=[[5,8],[5,3],[3,1]]lst.sort(key=lambdax:x[1])#lst=[[3,1],[5,8],[5,3]]以元素的第二个元素升序排列2.对多个变量进行排序......
  • 学习python-Day44
    今日学习内容一、前端简介前端与后端前端:用户可以直接操作的界面。后端:用户不能直接操作的内部真正执行核心业务逻辑的代码程序。前端的学习真正的前端工程师......
  • python01
    定义方式驼峰:AgeOfBoy下划线:age_of_boy(推荐使用)pthon中没有常量的定义,一般通过大学带区分常量和变量注释“”“”“”三个双引号是多行注释,#是单行注释co......
  • Python小游戏——外星人入侵(保姆级教程)第一章 06让飞船移动
    系列文章目录第一章:武装飞船06:让飞船移动一、驾驶飞船下面来让玩家能够左右移动飞船。我们将编写代码,在用户按左或右箭头键时做出响应。我们将首先专注于向右移动,再使......
  • 只用20行代码,Python实现爬取网易云音乐,非常简单!
    哈喽,大家好,今天咱们试试只用20行代码来实现批量获取网抑云文件保存本地,炒鸡简单!悄悄的告诉你,其实不到20行代码~  你需要准备本次使用的环境是Python3.8,编......
  • 【并发操作】协程,线程,进程是什么,在Python中怎么应用?
    前言生活中的多任务时时刻刻存在,例如小张一边码字一边看屏幕,又例如小蔡可以一边跳舞一边打篮球,这就是生活中的多任务。那么计算机中的多任务是什么呢、怎么使用呢?就让我们......