Вариант в лоб, но без 3 пункта.
У вас есть точка старта и вектор направления. Исходя из этого вы строите прямую, проходящую через точку старта и совпадающцю (не уверен в термине) с вектором. Получаете естественно уравнение прямой. То же делаете для второй точки. Далее находите точку пересечения этих двух прямых (это легко, зная их уравнения). Отлично, точка пересечения есть. И она единственная (если существует - прямые могут быть параллельны). Далее считаете расстояние из первой точки в точку пересечения, и из второй в точку пересечения. Берете скорости объектов (они должны быть известны - иначе нерешаемо), и считаете сколько каждому потребуется для преодоления пути из стартовой точки в точку пересечения. Если время совпало - пересекутся.