Цитата:
|
Сообщение от Сандра
Спасибо! А теперь немного посложнее задача, есть переменные 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()}
}
Если непонятна математика - могу объяснить
