Je cherche un moyen efficace de vérifier si un objet va couper un coin pour aller du point A au point B ou empêcher l'objet de bouger du point A au point B s'il y a une position diagonale non échangeable entre les deux.Déterminer si le point A doit couper un coin pour atteindre le point B
ce qui est connu:
- Chaque point est un carré de largeur et de hauteur 1
- Chaque point a une liste de ses 8 points adjacents
- Un point peut être soit praticable ou nonwalkable
Voici quelques exemples (a
est la source, b
est le desination et X
est un point unwalkable):
aX
b
Dans le cas ci-dessus, a
ne peut pas marcher à être parce qu'il ya un point unwalkable adjacent à la fois le point et le point a
b
... donc, pour cette affaire, b
devient unwalkable de a
(c.-à-a
doit se déplacer vers le bas avant de procéder à b
)
ce qui suit est un cas similaire, en ce sens que a
ne peut pas marcher à b
:
aX
Xb
La façon dont je le fais au moment devient l'ensemble des points adjacents orthogonalement des deux points A
et le point d'intersection B
et ces deux ensembles. S'il n'y a pas d'éléments dans le résultat recoupé, le point A
peut atteindre le point B
.
... et cela fonctionne.
Mais est-il, peut-être ainsi, plus mathématique et efficace d'y parvenir?
Alors qu'est-ce que ça ressemble si elle est accessible à pied? Vous voudrez peut-être montrer comment aller de A -> B. –
Ce n'est pas pertinent. Je veux seulement savoir s'il est possible de passer de A à B. –