student1562659 2021-11-17 20:49 采纳率: 100%
浏览 28
已结题

(改正)(能运行必采纳)python画图题

假设有个飞人,一开始在xyz坐标轴平面的原点(0,0,0)处。 每过一秒,它会随机地往一个方向北(y正半轴)南(y负半轴)东(x正半轴)西(x负半轴)上(z正半轴)下(z负半轴)飞n个单位长度(n取值范围是1-10, 包括10)能飞到z<0处
要求 :1. 把它的高度变化(z方向的变化)画出來
2.把它的路線投影在xy平面上画出來(x-y)

我的代码:

import random
import matplotlib.pyplot as plt
# 初始坐标位置
pos = [0,0,0]
steps=[]
step = 100000
arrow = {'e':[1,0,0],'w':[-1,0,0],'s':[0,-1,0],'n':[0,1,0],'u':[0,0,1],'d':[0,0,-1]}
distance=[]
for i in range(step):
    r = random.choice(list(set(arrow)))
    l = random.randint(1, 10)
    pos[0] += arrow[r][0]*l
    pos[1] += arrow[r][1]*l
    pos[2] += arrow[r][2]*l
    steps.append(r+str(l)+' ['+','.join([str(n) for n in pos])+']')
    distance.append((pos[0]**2+pos[1]**2+pos[2]**2)**0.5)

plt.plot(range(step),distance)
plt.show()
plt.close()


  • 写回答

1条回答 默认 最新

  • 技术专家团-Bamboo 2021-11-17 21:13
    关注

    z<0时不能飞,所以加个判断;
    把x坐标 y坐标保存到两个列表中,就可以绘图了

    import random
    import matplotlib.pyplot as plt
    # 初始坐标位置
    pos = [0,0,0]
    steps=[]
    step = 100000
    arrow = {'e':[1,0,0],'w':[-1,0,0],'s':[0,-1,0],'n':[0,1,0],'u':[0,0,1],'d':[0,0,-1]}
    distance=[]
    xpos=[0]
    ypos=[0]
    zpos=[0]
    for i in range(step):
        r = random.choice(list(set(arrow)))
        l = random.randint(1, 10)
        pos[0] += arrow[r][0]*l
        pos[1] += arrow[r][1]*l
        pos[2] += arrow[r][2]*l
        if pos[2]<0:
            pos[2] = 0
        xpos.append(pos[0])
        ypos.append(pos[1])
        zpos.append(pos[2])
        steps.append(r+str(l)+' ['+','.join([str(n) for n in pos])+']')
        distance.append((pos[0]**2+pos[1]**2+pos[2]**2)**0.5)
    plt.plot(range(step),distance)
    plt.show()
    plt.plot(xpos,ypos)
    plt.show()
    plt.plot(range(step),zpos)
    plt.show()
    plt.close()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月26日
  • 已采纳回答 11月18日
  • 创建了问题 11月17日

悬赏问题

  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用