ork*_*rko 5 algorithm path line
我正在努力开发游戏.

我有一个起点和起始矢量(蓝色),然后我在屏幕上绘制路径(黑色),我想跟随一定的惯性,或每个转弯的有限角度和步骤应该产生一条红线.
你有关于如何编程这种算法的任何提示吗?
您只需创建一个微分方案,即离散时刻的模型速度和源点坐标。假设您修复了一些dt = 0.1 sec,例如,起始速度由蓝色向量给出,如v0。我们从 开始x0。说的y[j]是黑色路径的点。
让x1 = x0 + v1 * dt,哪里v1 = v0 + (y[k(x0)+1] - x0) * f(abs(y[k(x0)+1] - x_0))。其中是中
k(x0)最近点的索引,是一个函数,表征将您的轨迹拉向定义路径的“力”。它仅为非负 es 定义。x0y[j]
f(x)x
此模型将您的轨迹拉至定义路径中最接近轨迹上当前建模位置的下一个点。
一个很好的例子是f(x)对重力进行建模:f(x) = K/(x * x),其中K应该通过实验进行调整以给出自然的期望结果。
然后x2 = x1 + v2 * dt、v2 = v1 + (y[k(x1) + 1] - x1) * f(abs(y[k(x1) + 1] - x_1))等:
x[n+1] = x[n] + v[n+1] * dt, 在哪里v[n+1] = v[n] + (y[k(x[n]) + 1] - x[n]) * f(abs(y[k(x[n])+1] - x[n]))...
你必须dt在K这里进行调整。dt应该足够小以使轨迹平滑。越大,K轨迹越接近精确定义,越小,K轨迹越宽松。
现在编辑实际上当我稍微思考一下时,我明白力函数的选择f不好,因为重力允许空间速度,即如果初始速度太大,你的轨迹能够无限地远离所需的轨迹。因此,您应该构造另一个函数,可能只是类似于f(x) = K xor f(x) = K x ^ alpha, where的函数alpha > 0。你看,这个方案非常通用,所以你应该尝试一下。