Distance between two points

倖福魔咒の 提交于 2019-12-25 08:06:58

问题


Is there any difference between:

distance = point1.subtract(point2).length;

and

distance = Point.distance(point1, point2);

回答1:


Since this question is tagged Optimization, the longhand for the pythagorean theorem will be the most efficient way to find the distance between two points in AS3, provided that you don't:

  1. Instantiate an object while doing it
  2. Call any more Math functions than necessary (manually do an Abs, for example)
  3. Don't actually call any functions if you can help it

Almost all the built-in methods are conveniences. They're not optimized for speed.




回答2:


Disclaimer: I don't know much about ActionScript, but this is what I'd think the difference is:

point1.subtract(point2) probably creates some vector object that represents the vector from point2 to point1. Obviously, the distance between the points is the length of that vector.

I could imagine that the first line would be less efficient than the second line, because in the first line a temporary vector object is created, which is only needed because you need the length of the vector. In the second line, no temporary object needs to be made - the distance between the points is probably calculated from the coordinates of the points directly.




回答3:


The result should be the same. The difference is that the subtract() function creates a temporary Point that you immediately throw away after getting its length, whereas the static function call just does the distance formula with the two points' coordinates and returns the scalar result.

Use the second version if all you need is the scalar distance, and you don't make any use of the x or y components of the extra Point (which is just the vector from point2 to point1).



来源:https://stackoverflow.com/questions/5722797/distance-between-two-points

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!