Показать сообщение отдельно
Старый 21.09.2006, 15:59
scourge ' kangaroo вне форума Посмотреть профиль Отправить личное сообщение для scourge ' kangaroo Посетить домашнюю страницу scourge ' kangaroo Найти все сообщения от scourge ' kangaroo
  № 15  
Ответить с цитированием
scourge ' kangaroo
 
Аватар для scourge ' kangaroo

Регистрация: Sep 2005
Сообщений: 390
Отправить сообщение для scourge ' kangaroo с помощью ICQ
наверное было бы логично предположить, что я переделал код...


Код:
aX = 120; aY = 100;
bX = 100; bY = 130;
cX = 140; cY = 130;

function onEnterFrame(){
_root.clear()
getlocation(aX, aY, bX, bY, cX, cY, _xmouse, _ymouse)
}

// Проверяем, принадлежит ли точка треугольнику
function getlocation(aX, aY, bX, bY, cX, cY, fX, fY){
// Находим площадь главного треугольника
s0 = getsquare(aX, aY, bX, bY, cX, cY)
// Соединяем вершины треугольника с точкой и находим площади маленьких треугольников
s1 = getsquare(fX, fY, aX, aY, bX, bY)
s2 = getsquare(fX, fY, aX, aY, cX, cY)
s3 = getsquare(fX, fY, bX, bY, cX, cY)
// Принадлежит?
if(Math.round(s0) == Math.round((s1+s2+s3))){
	_root.beginFill(0x6794A7);
}else{
	_root.beginFill(0x000000);
}
_root.lineStyle(0, 0xFFFFFF);
_root.moveTo(aX,aY);
_root.lineTo(bX,bY);
_root.lineTo(cX,cY);
_root.lineTo(aX,aY);
}

// Узнаём площадь треугольника
function getsquare(aX, aY, bX, bY, cX, cY){
// 1. Находим длины сторон
aD = getlength(aX, aY, bX, bY)
bD = getlength(bX, bY, cX, cY)
cD = getlength(cX, cY, aX, aY)
// 2. Находим полупериметр
p = (aD + bD + cD)/2
// 3. Находим площадь
S = Math.sqrt(p * (p - aD) * (p - bD) * (p - cD))
return(S)
}

function getlength(aX, aY, bX, bY){
xd = aX - bX
yd = aY - bY
return(Math.sqrt(xd*xd+yd*yd));
}