如何沿曲线计算点?

Nic*_*ros 7 math wpf animation curve

我正在为wpf写一个自定义动画,作为一个非数学家我有几个问题......

如果给出两个Point3D,From和To,假设原点是0,0,0,我如何计算两点之间的曲线?

一旦我将曲线'绘制'并且我知道它的长度(如何做到这一点?)我怎样才能计算出沿线某一给定距离的x,y,z坐标?

谢谢!

Chr*_*isF 5

要获得从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)更多点(中心,控制点等)