Чтобы получить вектор прямой линии из точки А в точку Б:
B - A
что бы перевести на:
vector.x = b.x - a.x;
vector.y = b.y - a.y;
vector.z = b.z - a.z;
Длина:
length = Math.Sqrt(vector.x * vector.x +
vector.y * vector.y +
vector.z * vector.z);
Чтобы получить точку на определенном расстоянии вдоль вектора, вам нужно сделать вектор единичным вектором (длина 1):
vector.x = vector.x / length;
...
, а затем умножьте на ваше расстояние:
vector.x = distance * vector.x;
...
Это все из памяти, поэтому может не скомпилироваться сразу.
В CodeProject есть векторный тип для C # , который сделает многое за вас.
Если вам нужна кривая, вам понадобится:
а) чтобы определить, какой тип кривой вы хотите (дуга, сплайн и т. Д.)
б) больше точек (центры, контрольные точки и т. Д.)