нужно узнать, принадлежит ли точка треугольнику.
написал код, он он работает не точно. т.е. функция не возвращает истину, когда точка рядом со стороной треугольника.
Подскажите пожалуйста, в чём ошибка...

Код:
aX = 120; aY = 100;
bX = 100; bY = 130;
cX = 140; cY = 130;
_root.lineStyle(0, 0xFFFFFF);
_root.moveTo(aX,aY);
_root.lineTo(bX,bY);
_root.lineTo(cX,cY);
_root.lineTo(aX,aY);
function onEnterFrame(){
hitTest(aX, aY, bX, bY, cX, cY, _xmouse, _ymouse)
}
// Проверяем, принадлежит ли точка треугольнику
function hitTest(aX, aY, bX, bY, cX, cY, fX, fY){
// Находим площадь главного треугольника
s0 = square(aX, aY, bX, bY, cX, cY)
// Соединяем вершины треугольника с точкой и находим площади маленьких треугольников
s1 = square(fX, fY, aX, aY, bX, bY)
s2 = square(fX, fY, aX, aY, cX, cY)
s3 = square(fX, fY, bX, bY, cX, cY)
// Принадлежит?
if(s0 >= (s1+s2+s3))trace("курсор в треугольнике!")
}
// Узнаём площадь треугольника
function square(aX, aY, bX, bY, cX, cY){
// 1. Находим длины сторон
aD = Math.abs(aX - bX) + Math.abs(aY - bY)
bD = Math.abs(bX - cX) + Math.abs(bY - cY)
cD = Math.abs(cX - aX) + Math.abs(cY - aY)
// 2. Находим полупериметр
p = (aD + bD + cD)/2
// 3. Находим площадь
S = Math.sqrt(p * (p - aD) * (p - bD) * (p - cD))
return(S)
}