Показать сообщение отдельно
Старый 16.09.2014, 20:16
nubideus вне форума Посмотреть профиль Отправить личное сообщение для nubideus Найти все сообщения от nubideus
  № 2  
Ответить с цитированием
nubideus

Регистрация: Jan 2013
Сообщений: 322
Код AS1/AS2:
//((x1 + y1 * t) - (x2 + y2 * t))**2 = r
var x1 = 10;
var y1 = 5;
var x2 = 11+5;
var y2 = 15+1;
var t = 4;
var r = Math.pow((x1 + y1 * t) - (x2 + y2 * t), 2);
r === ((x1 + y1 * t) - (x2 + y2 * t)) * ((x1 + y1 * t) - (x2 + y2 * t));
r === (x1 + y1 * t) * (x1 + y1 * t) - 2*(x1 + y1 * t)*(x2 + y2 * t) + (x2 + y2 * t)*(x2 + y2 * t);
r === (y2*y2 - 2*y1*y2 + y1*y1)*t*t + t*(-2*x1*y2 + 2*x1*y1 - 2*x2*y1 + 2*x2*y2) + x1*x1 - 2*x1*x2 + x2*x2;
0 === (y2*y2 - 2*y1*y2 + y1*y1)*t*t + t*(-2*x1*y2 + 2*x1*y1 - 2*x2*y1 + 2*x2*y2) + x1*x1 - 2*x1*x2 + x2*x2 - r;
 
var a = (y2*y2 - 2*y1*y2 + y1*y1);
var b = 2*(-x1*y2 + x1*y1 - x2*y1 + x2*y2);
var c = (x1*x1 - 2*x1*x2 + x2*x2 - r);
 
0 === a*t*t + b*t + c;
 
var r1 = (-b + Math.sqrt(b*b - 4*a*c)) / (2*a);
var r2 = (-b - Math.sqrt(b*b - 4*a*c)) / (2*a);
 
t === r1 || t === r2; // true
Цитата:
var t:Number = 2;
var x1:Number = 2;
var xV1:Number = 2;
отсюда и ошибки, надо брать разные значения

+
Код AS1/AS2:
var a = (y2 - y1) * (y2 - y1);
var b = 2*(x2 - x1) * (y2 - y1);
var c = (x1 - x2) * (x1 - x2) - r;


Последний раз редактировалось nubideus; 16.09.2014 в 20:38.