2011-04-19 8 views

Répondre

1

Depuis cette question est marqué d'optimisation, le longhand pour le théorème de Pythagore sera le moyen le plus efficace pour trouver la distance entre deux points dans AS3, à condition que vous ne faites pas:

  1. instancier un tout objet faire
  2. Appelez-nous à plus de fonctions mathématiques que nécessaire (faire manuellement un Abs, par exemple)
  3. ne pas appeler réellement toutes fonctions si vous pouvez l'aider

Presque toutes les méthodes intégrées sont des commodités. Ils ne sont pas optimisés pour la vitesse.

2

Disclaimer: Je ne sais pas beaucoup sur ActionScript, mais c'est ce que je pense que la différence est :

point1.subtract(point2) crée probablement un objet vectoriel représentant le vecteur de point2 à point1. Évidemment, la distance entre les points est la longueur de ce vecteur.

Je pourrais imaginer que la première ligne serait moins efficace que la deuxième ligne, parce que dans la première ligne un objet vectoriel temporaire est créé, ce qui n'est nécessaire que parce que vous avez besoin de la longueur du vecteur. Dans la deuxième ligne, aucun objet temporaire n'a besoin d'être fait - la distance entre les points est probablement calculée à partir des coordonnées des points directement.

0

Le résultat devrait être le même. La différence est que la fonction subtract() crée un point temporaire que vous jetez immédiatement après avoir obtenu sa longueur, alors que l'appel de fonction statique ne fait que la formule de distance avec les coordonnées des deux points et renvoie le résultat scalaire. Utilisez la deuxième version si vous n'avez besoin que de la distance scalaire, et vous n'utilisez pas les composantes x ou y du point supplémentaire (qui est juste le vecteur de point2 à point1).

Questions connexes