假设有个飞人,一开始在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()