我有一个函数,它传递 2 个数组,然后再生成 2 个数组。我试图多次重复这个输入数组的以下两个值,所以说输入数组 10 个值,函数将重复 5 次。
我创建了一个有效的函数,但不会循环遍历更长的数组。输入数组是
X=[0,1]
和 Y[0,2]
只是为了确保代码有效,理想情况下这些数组会更长并且函数会在每个循环中选择每个数组中的下两个值。
import pandas as pd
from cmath import cos
from xml.etree.ElementTree import PI
import matplotlib.pyplot as plt
import math
import numpy as np
import csv
import pandas as pd
df=pd.read_csv("Geas_csv.csv")
#array1=list(df["x"].values)
#array2=list(df["y"].values)
radius = .1
X = []
Y = []
X_10 = []
X = [0,1]
Y = [0,2]
def generate_shape(X,Y):
gradient=(Y[1]-Y[0])/(X[1]-X[0])
print (gradient)
normal=-(1/gradient)
print (normal)
new_x_coord = [0,0,0,0,0]
new_y_coord = [0,0,0,0,0]
print (math.atan(normal))
print (radius*math.cos(math.atan(normal)))
print (radius*math.sin(math.atan(normal)))
new_x_coord[0] = X[0]+radius*math.cos(math.atan(normal))
new_x_coord[1] = X[0]-radius*math.cos(math.atan(normal))
new_x_coord[2] = X[1]-radius*math.cos(math.atan(normal))
new_x_coord[3] = X[1]+radius*math.cos(math.atan(normal))
new_x_coord[4] = new_x_coord[0]
print (new_x_coord)
new_y_coord[0] = Y[0]+radius*math.sin(math.atan(normal))
new_y_coord[1] = Y[0]-radius*math.sin(math.atan(normal))
new_y_coord[2] = Y[1]-radius*math.sin(math.atan(normal))
new_y_coord[3] = Y[1]+radius*math.sin(math.atan(normal))
new_y_coord[4] = new_y_coord[0]
print (new_y_coord)
plt.plot(new_x_coord, new_y_coord)
plt.plot(X,Y)
plt.grid()
plt.show()
return (new_x_coord, new_y_coord)
generate_shape(X,Y)