要获得从A点到B点的直线矢量:
B - A.
这将转化为:
vector.x = b.x - a.x;
vector.y = b.y - a.y;
vector.z = b.z - a.z;
Run Code Online (Sandbox Code Playgroud)
长度是:
length = Math.Sqrt(vector.x * vector.x +
vector.y * vector.y +
vector.z * vector.z);
Run Code Online (Sandbox Code Playgroud)
要沿着向量获得一定距离,您需要使向量为单位向量(长度为1):
vector.x = vector.x / length;
...
Run Code Online (Sandbox Code Playgroud)
然后乘以你的距离:
vector.x = distance * vector.x;
...
Run Code Online (Sandbox Code Playgroud)
这完全来自内存所以可能无法立即编译.
CodeProject上有一个C#的矢量类型,它可以为你做很多事情.
如果你想要曲线,那么你需要:
a)定义所需的曲线类型(圆弧,样条曲线等)
b)更多点(中心,控制点等)