Hi,

I'm trying to compare 3 points but because of double precision in AS3
i'm running into some issues with trailing digits causing the numbers
to not be equal, i.e. 1.25 != 1.2499999999999

what i'd like to figure out how to do is introduce a tolerance of say
.001. then i'd compare the test point against the other two points
saying: is testPoint.x within the range of point1.x and point2.x and
is testPoint.y within the range of point1.y and point2.y. if so,
return true. 

i just can't figure it out. here's what i have so far:

public static function isEndPoint(p:Point, Lp1:Point, Lp2:Point):Boolean {
                var tolerance:int = .001;
                var newLp1:Point = new Point(tolerance * Lp1.x,tolerance * 
Lp1.y);
                var newLp2:Point = new Point(tolerance * Lp2.x,tolerance * 
Lp2.y);
                return (p.equals(newLp1) || p.equals(newLp2));
        }

I guess I'm seeing that the equals() method at the bottom of this code
is not really what i want. Plus, multiplying everything by .001
doesn't solve the problem as i'll essentially be using the same
numbers i started with.

Can someone perhaps point me in the right direction here, please? I'm
not sure where exactly to go from here. 

Thanks,

fumeng. 

Reply via email to