This commit is contained in:
changwu 2023-05-09 22:19:22 +08:00
commit 28ef3dbf6a
1 changed files with 171 additions and 0 deletions

171
c_cpp/badraw.py Normal file
View File

@ -0,0 +1,171 @@
import numpy as np
import random
import math
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
n = 35
init1x = np.zeros(n)
init1y = np.zeros(n)
initx = np.zeros(n)
inity = np.zeros(n)
initz = np.zeros(n)
finalx = np.zeros(n)
finaly = np.zeros(n)
finalz = np.zeros(n)
startx = np.zeros(n)
starty = np.zeros(n)
startz = np.zeros(n)
midx = np.zeros(n)
midy = np.zeros(n)
midz = np.zeros(n)
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
for i in range(0, n):
# initx[i] = random.random() * 100
# inity[i] = random.random() * 100
# initz[i] = random.random() * 100
# finalx[i] = random.random() * 100
# finaly[i] = random.random() * 100
# finalz[i] = random.random() * 100
# initx[i] = 30*random.random() +30
# inity[i] = 30*random.random() +30
# initz[i] = 0
startx[i] = 2+i*40/n
starty[i] = 2-abs(i-17)*20/17
startz[i] = 75
initx[i] = 2+i*40/n
initz[i] = 75
inity[i] = 22-abs(i-17)*20/17
midx[i] = 5+3*int(i%7)
midy[i] = 60
midz[i] = 75+3*int(i/7)
# finalx[i] = 2+i*40/n
# finalz[i] = 70
# finaly[i] = 22-abs(i-22)*20/22
if i < 17:
psai = 2*math.pi*i/22
finalx[i] = 80
finaly[i] = 80+10*math.cos(psai)
finalz[i] = 80+10*math.sin(psai)
else:
psai = 2*math.pi*(i-22)/22
finalx[i] = 80+10*math.cos(psai)
finaly[i] = 80
finalz[i] = 80+10*math.sin(psai)
# initx[i] = 20 + 8 * math.cos(math.pi * 2 * i / n)
# inity[i] = 80 + 8 * math.sin(math.pi * 2 * i / n)
# finalx[i] = 30 + i * 10 / n
# finaly[i] = 15 + i * 15 / n
# initx[i] = 30 + i * 10 / n
# inity[i] = 15 + i * 15 / n
# finalx[i] = 85-15*abs(i-7)/7
# finaly[i] = 60-40*i/n
# initx[i] = 10 + 2 * i * 11 / n
# inity[i] = 20 #+ 10 * math.sin(math.pi * 2 * i / n)
# finalx[i] = 50 - 2 * i * 11 / n
# finaly[i] = 65
# if i <10:
# initx[i] = random.random()*30
# else:
# initx[i] = random.random()*30 + 70
# inity[i] = random.random()*30
# finalx[i] = 50 + 10 * math.cos(math.pi * 2 * i / n)
# finaly[i] = 80 + 10 * math.sin(math.pi * 2 * i / n)
placexs = []
placeys = []
placezs = []
tmpx = []
tmpy = []
tmpz = []
a1 = 0.5/math.sqrt(5)
for t in range(0,40):
for cnt in range(0,n):
placexs.append(startx[cnt])
placeys.append(starty[cnt]+0.5*t)
placezs.append(startz[cnt])
for t in range(0,44):
for cnt in range(0,n):
tmpx.append(midx[cnt]+a1*t)
tmpy.append(midy[cnt]+2*a1*t)
tmpz.append(midz[cnt])
xplace1 = np.loadtxt("D:/wsf2x.csv",delimiter=",", dtype=float)
xplace2 = np.loadtxt("D:/wsf1x.csv",delimiter=",", dtype=float)
yplace1 = np.loadtxt("D:/wsf2y.csv",delimiter=",", dtype=float)
yplace2 = np.loadtxt("D:/wsf1y.csv",delimiter=",", dtype=float)
zplace1 = np.loadtxt("D:/wsf2z.csv",delimiter=",", dtype=float)
zplace2 = np.loadtxt("D:/wsf1z.csv",delimiter=",", dtype=float)
print(yplace1[14,20])
placex = []
placey = []
placez = []
xplace = np.hstack((xplace1,xplace2))
yplace = np.hstack((yplace1,yplace2))
zplace = np.hstack((zplace1,zplace2))
for i in range(0, n):
for j in range(0, 4000):
if (xplace[i, j]) != 0:
placex.append(xplace[i, j])
placey.append(yplace[i, j])
placez.append(zplace[i, j])
plt.title("无人机轨迹散点图")
# plt.plot([70,80],[35,55])
ax = plt.axes(projection='3d')
z = np.linspace(0, 80, 1000)
theta1 = np.linspace(0,2*np.pi,30)
fai = np.linspace(0,2*np.pi,30)
theta1,fai = np.meshgrid(theta1,fai)
xr = 55+6*np.cos(theta1)*np.sin(fai)
yr = 80+6*np.sin(theta1)*np.sin(fai)
zr = 65+6*np.cos(fai)
ax.plot_surface(xr, yr, zr,cmap='viridis', edgecolor='none')
#调用 ax.plot3D创建三维线图
# x = 50+7.5*np.cos(theta)
# y = 60+7.5*np.sin(theta)
# ax.plot_surface(x, y, z,cmap='viridis', edgecolor='none')
# x1 = np.linspace(0,40,100)
# z1 = np.linspace(0,60,100)
# x1,z1 = np.meshgrid(x1,z1)
# y1 = -0.5*x1+40
# ax.plot_surface(x1, y1, z1,cmap='viridis', edgecolor='none')
# y2 = np.linspace(0,20,80)
# y2,z1 = np.meshgrid(y2,z1)
# x2 = 60-y2
# ax.plot_surface(x2, y2, z1,cmap='viridis', edgecolor='none')
# z3 = 60
# x3 = np.linspace(0,40,100)
# x3, z3 = np.meshgrid(x3,z3)
# y3 = 40-0.5*x3
# ax.plot_surface(x3, y3, z3,cmap='viridis', edgecolor='none')
# att1 = pd.DataFrame(data= placex)
# att2 = pd.DataFrame(data= placey)
# att3 = pd.DataFrame(data= placez)
# att4 = pd.DataFrame(data= placexs)
# att5 = pd.DataFrame(data= placeys)
# att6 = pd.DataFrame(data= placezs)
# att7 = pd.DataFrame(data= tmpx)
# att8 = pd.DataFrame(data= tmpy)
# att9 = pd.DataFrame(data= tmpz)
# att1.to_csv('D:\\fig:x1.csv')
# att2.to_csv('D:\\fig:y1.csv')
# att3.to_csv('D:\\fig:z1.csv')
# att4.to_csv('D:\\fig:x2.csv')
# att5.to_csv('D:\\fig:y2.csv')
# att6.to_csv('D:\\fig:z2.csv')
# att7.to_csv('D:\\fig:x3.csv')
# att8.to_csv('D:\\fig:y3.csv')
# att9.to_csv('D:\\fig:z3.csv')
ax.scatter3D(placex,placey,placez,c='blue',s = 0.1)
#ax.scatter3D(placexs,placeys,placezs,c='blue',s = 0.1)
#ax.scatter3D(tmpx,tmpy,tmpz,c='blue',s = 0.1)
plt.show()