Показать сообщение отдельно
Старый 11.01.2008, 03:26
goarcade вне форума Посмотреть профиль Отправить личное сообщение для goarcade Найти все сообщения от goarcade
  № 9  
Ответить с цитированием
goarcade

Регистрация: Sep 2006
Сообщений: 32
Цитата:
Сообщение от Сандра
Спасибо! А теперь немного посложнее задача, есть переменные a и b:

Код:
var a = _root._xmouse;
var b = _root._ymouse;
Как найти координаты x3 и y3, таким образом, чтобы они лежали на заданном отрезке (который, как следует из самого первого условия задан координатами x1, y1 и x2, y2) и чтобы курсор мышки был максимально приближен к этой точке?
Код:
onEnterFrame = function () {
	var dx:Number = b._x-a._x;
	var dy:Number = b._y-a._y;
	var t:Number = (_xmouse*dx-a._x*dx+_ymouse*dy-a._y*dy)/(dx*dx+dy*dy);
	if(t>1)t=1;
	if(t<0)t=0;
	c._x = a._x+(b._x-a._x)*t;
	c._y = a._y+(b._y-a._y)*t;
};

mcDrag("a");a._x = 50; a._y = 50;
mcDrag("b");b._x = 150; b._y = 150;
mcDrag("c");delete c.onPress;

function mcDrag(name:String)
{
	var mc:MovieClip = _root.createEmptyMovieClip(name,_root.getNextHighestDepth());
	mc.beginFill(0xcccccc*Math.random());
	var r:Number = 5;
	mc.moveTo(-r,-r);
	mc.lineTo( r,-r);
	mc.lineTo( r, r);
	mc.lineTo(-r, r);
	mc.endFill();
	mc.onPress=function(){this.startDrag()}
	mc.onMouseUp=function(){this.stopDrag()}	
}
Если непонятна математика - могу объяснить