Si q
est votre point dans l'espace de 2D, nous pouvons écrire q(x,y)
. On sait qu'un polyèdre a les arêtes (E), les sommets (V) et les faces (F) dont tous ces termes sont liés à la formule V - E + F = 2
du théorème d'Euler mais le problème s'avère plus facile puisqu'il s'agit d'un polygone . Donc la plaine est de trouver un bord et de calculer le vecteur de direction du point q(x,y)
au centre du bord, en faisant cela (et si le polygone est convexe), nous sommes sûrs que ce segment de ligne passera seulement par un bord de P.
le calcul aura besoin d'un peu d'algèbre linéaire, mais il est pas si difficile, par exemple:
1 - trouver la distance d'une ligne à un point (afin que nous puissions trouver le bord le plus proche à utiliser dans ce problème):
2 - En outre, une bonne idée serait de trouver le point sur cette ligne qui est le plus proche de (x0,y0)
a des coordonnées:
Lorsque l'équation de la ligne est ax + by + c = 0
et le (x0,y0)
est un point arbitraire pas nécessairement dans P.
Donc, maintenant nous pouvons trouver le point k(x,y)
sur la ligne tha t est le plus proche du point initial q(x0,y0)
, en faisant |q-k| = d
. Où d est la distance que nous venons de calculer. Après que vous avez déjà tout ce que vous devez trouver un segment de ligne provenant de q qui coupe le nombre minimum d'arêtes de P.
Quelques endroits où vous pouvez étudier et trouver plus sur ce sujet:
Wiki
mathwords
Sure 'min (ligne_segment) = Ligne (q, q)'. Je suppose que vous ne nous avez pas dit toutes les exigences. – RBarryYoung
ressemble à une question de devoirs – nomistic
bien, problème intéressant, mais personne ici aime les questions du genre c'est le problème, donc faire quelque chose. – Paul