V и S - векторы, если перевести в скалярные величины и разделить, то получается много вычислений. Можно ли такую операцию произвести с векторами не переводя их в скаляры и будет ли такой вариант быстрее? Сейчас у меня эта операция со скалярными величинами и выглядит так:
S:=Abs(Sqrt(Sqr(nPos[0]-pPos[0])+Sqr(nPos[1]-pPos[1])+Sqr(nPos[2]-pPos[2])));
sV:=sqrt(sqr(V[0])+sqr(V[1])+sqr(V[2]));
DT:=S / sV;
Нашел еще такое:
Деление вектора на вектор = скалярное произведение векторов, деленное на скаляр, равный квадрату вектора-делителя, результат - скаляр.И попробовал записать:
S:=VDif(pPos, nPos);
DT:=VDot(S, V) / VDot(V, V);
Скорее всего я не понял как это правильно сделать, потому что такой вариант не работает.
Возможно я в корне не правильно смотрю на задачу, по этому опишу подробнее:
Есть тело со скоростью, текущим положением и следующим положением. Есть третья точка которая лежит на этом отрезке пути, необходимо получить время за которое тело пройдет от текущей точки до точки на этом отрезке. Если переводить величины в скалярные, то все работает, но я не уверен что это правильное решение проблемы.