Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 16.09.2014, 18:58
PlutDem вне форума Посмотреть профиль Отправить личное сообщение для PlutDem Найти все сообщения от PlutDem
  № 1  
Ответить с цитированием
PlutDem
 
Аватар для PlutDem

Регистрация: Feb 2012
Сообщений: 212
По умолчанию Упростить выражение до квадратного уравнения у найти корни

Здравствуйте, имеется выражение ((x1 + xV1 * t) - (x2 + xV2 * t))^2 = r. Предполагается, что нам известны все переменные кроме t которую нужно вычислить. Для этого нужно упростить выражение до квадратного уравнения. Что бы быть уверенным, что я не ошибся в упрощении выражения я подставил во все переменные кроме r значения и вычислил результат: r = 4, далее, при упрощении сверялся с этим результатом.
Код AS3:
var t:Number = 2;
 
var x1:Number = 2;
var xV1:Number = 2;
 
var x2:Number = 12;
var xV2:Number = -2;
 
 
 
var:Number res = Math.Pow((x1 + xV1 * t) - (x2 + xV2 * t), 2)// res == 4;
res = Math.Pow((x1 + xV1 * t), 2) - 2 * (x1 + xV1 * t) * (x2 + xV2 * t) + Math.Pow((x2 + xV2 * t), 2); // res == 4
res = x1 * x1 + 2 * x1 * xV1 * t + xV1 * xV1 * t * t + -2 * x1 * x2 + -2 * x1 * xV2 * t + -2 * xV1 * t * x2 + -2 * xV1 * t * xV2 * t + x2 * x2 + 2 * x2 * xV2 * t + xV2 * xV2 * t * t; // res == 4
Теперь нужно найти коэффициенты уравнения. Переносим результат(res) в левую сторону и складываем подобные слагаемые, убираем переменную t.
Код AS3:
var r:Number = res;
var a:Number = xV1*xV1 + -2*xV1*xV2 + xV2*xV2;
var b:Number = 2*x1*xV1 + -2*x1*xV2 + -2*xV1*x2 + 2*x2*xV2;
var c:Number = x1*x1 + -2*x1*x2 + x2*x2 - r;
Вычисляем корни:
Код AS3:
var dX:Number1 = (-b + Math.Sqrt(b*b - 4*a*c))/2*a;
var dX2:Number = (-b - Math.Sqrt(b*b - 4*a*c))/2*a;
Я ожидал, что один из корней будет равен t, то есть 2, но вместо этого получается 768 и 512.
Я уже несколько раз переделывал, но успеха добиться не удалось. Буду рад если кто нибудь поможет найти ошибку.

Создать новую тему   Часовой пояс GMT +4, время: 23:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:17.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.