J'ai un vecteur de coordonnées 3D qui doit être vérifié pour vale supérieure dans une grille de coordonnées 3DComment comparer deux coordonnées 3D en python
#vector
vec=[(.033,-.22,.98),(.5,-.9,.0029),(-.77,-.01,-.092),(.5,.2,.0029)]
#grid
x1 = np.linspace(-1,1,10)
y1 = np.linspace(-1,1,10)
z1 = np.linspace(-1,1,10)
Im en utilisant ce code qui est manifestement erronée, parce que son juste comparaison des première coordonnée x et ne pas le reste de y, z
ctr=0
for v in vec:
for i in x1:
for j in y1:
for k in z1:
if ctr==0:
temp=(i,j,k)
ctr+=1
continue
else:
#print temp, "to" ,i,j
temp2=(i,j,k)
if temp<=v<=temp2:
print "low,high",temp, temp2
temp=(i,j,k)
ctr+=1
===WRONG OUTPUT======
low,high (-0.052631578947368474, 1.0, 1.0) (0.052631578947368363, -1.0, -1.0)
low,high (0.47368421052631571, 1.0, 1.0) (0.57894736842105265, -1.0, -1.0)
low,high (-0.78947368421052633, 1.0, 1.0) (-0.68421052631578949, -1.0, -1.0)
low,high (0.47368421052631571, 1.0, 1.0) (0.57894736842105265, -1.0, -1.0)
Ive collée une grille 2d ici (3d suit la même logique). Nous commençons donc l'itération de la grille depuis la cellule (0,0) dans un ordre sériel. Comme vous pouvez le voir le bas & coordonnées plus pour le point v
Pouvez-vous définir plus clairement ce que vous entendez par valeur supérieure? distance de l'origine? la plus grande distance entre 2 des coordonnées données? –
@jeffcarey a ajouté une description pic – vinita