English Version            Русская версия

 [ Разделы сервера ]  [ Карта сервера ]  [ Новости сервера ] [ Обратная связь ]



Мы должны вставить уравнения для x1, y1 , x2 , и y2. Затем мы возводим в квадрат обе части уравнения (чтобы избавиться от знака квадратного корня). То, что у нас слева, это квадратное уравнение. Квадратные уравнения имеют два решения, которые означают, что когда мы решаем уравнение по времени, мы получаем два ответа. Концептуально мы должны видеть, почему в этом случае мы получаем два различных времени. Представьте две окружности, двигающихся по направлению друг к другу. В первый раз они соприкоснутся краями. С течением времени они будут двигаться одна сквозь другую, но в тот момент, когда они будут намерены разойтись, они соприкоснутся краями еще в одной точке снова. Два момента времени, найденные при решении квадратного уравнения, дают нам два момента времени, когда может произойти столкновение. Когда мы имеем наши два ответа, мы смотрим, какое время меньше по величине и отбрасываем второе значение. Определяя эти константы, R =radius1+radius2 a =-2*xmov1*xmov2+xmov12+xmov22 b =-2*xl1*xmov2-2*xl2*xmov1+2*xl1*xmov1+2*xl2*xmov2 c =-2*xl1*xl2+xl12+xl22 d =-2*ymov1*ymov2+ymov12+ymov22 e =-2*yl1*ymov2-2*yl2*ymov1+2*yl1*ymov1+2*yl2*ymov2 f =-2*yl1*yl2+yl12+yl22 g =a+d h =b+e k =c+f-R2 мы можем записать квадратное уравнение в упрощенной форме как: g*t2+h*t+k =0 Используя формулу квадратов для решения по времени, мы приходим к: t1 =?-h+h2-4*g*k и t2 =?-h-h2-4*g*k 2*g 2*g 4. Это вычисление производится в каждом кадре. Если любой из моментов времени меньше или равен 1, то столкновение произошло между предыдущим кадром и текущим кадром. Это работает для любой возможной скорости; ограничений нет. Если вы интересуетесь более строгой математикой этого процесса, посмотрите файл circ_circ_frame_independent.pdf в папке Chapter05 на CD. Там показано, как это реализовано вручную. Решение квадратных уравнений Любое уравнение, в котором переменная имеет степень 2 (и нет других выражений с более высокой стеменью) является квадратным уравнением
Hosted by uCoz