Bonjour à tous,scipy.spatial.Voronoi: Comment savoir où un rayon traverse une ligne donnée?
je le segment de code suivant:
import numpy as np
from random import randint
import matplotlib.pyplot as plt
from scipy.spatial import Voronoi, voronoi_plot_2d
NUM_OF_POINTS = 20
points = []
for i in range (0, NUM_OF_POINTS):
points.append([randint(0, 500), randint(0, 500)])
points = np.array(points)
vor = Voronoi(points)
voronoi_plot_2d(vor)
plt.show()
qui produit des parcelles Voronoï comme celui:
Mon but est de trouver où les « rayons » (les lignes qui sort de l'intrigue, en pointillés ou solide) se croisent avec une ligne donnée (par exemple x = 500). Comment puis-je faire cela?
J'ai déjà essayé d'utiliser la liste ridge_vertices
dans l'objet Voronoi
, mais ces 'rayons' ne sont associés qu'à un seul sommet dans la liste, donc je ne peux pas comprendre l'équation de ligne.
Edit:
Mon but ultime est avec ce, compte tenu des frontières du plan, pour trouver les points qui se croisent avec ces frontières pour une cellule de bord donné. Par exemple, étant donné la cellule de bord en haut à gauche, et les frontières y = -50 et x = 525, je trouverais les points marqués avec les X rouges.
Donc, si vous avez des idées à cela, ils seraient appréciés.
Merci.
Cependant, étant donné deux régions, je ne sais pas lequel de 'x *' et 'y *' je sais, non? Donc, je devrais calculer pour les deux cas et décider lequel est applicable? – deterjan
Désolé, je ne suis pas sûr de ce que vous voulez dire. Pourriez-vous élaborer? Je pensais que vous définiriez les limites? – Paul
Je voudrais, mais comment puis-je savoir quelle frontière un rayon donné traverse en premier, puisqu'il croisera peut-être les deux? – deterjan