【发布时间】:2016-02-28 23:15:29
【问题描述】:
我正在编写一个算法,它将三次贝塞尔曲线分割成多条曲线(最多 4 条)。对于我想从一开始分割的每个点,我都有 t 值。我也有一个算法已经将曲线分割一次:
SubdivPoints subdivideBezier(Vector2 p0, Vector2 p1, Vector2 p2, Vector2 p3, float t)
{
Vector2 p11 = (p1 - p0) * t + p0;
Vector2 p21 = (p2 - p1) * t + p1;
Vector2 p31 = (p3 - p2) * t + p2;
Vector2 p12 = (p21 - p11) * t + p11;
Vector2 p22 = (p31 - p21) * t + p21;
Vector2 p13 = (p22 - p12) * t + p12;
return SubdivPoints(p11, p12, p22, p31, p13);
}
我的问题是,有没有一种简单的方法可以将其扩展为多次拆分?我想在每次拆分后我想重新计算 t 值;我想知道的一件事是简单的算术是否可以在这里工作。例如。假设我的 t 值为 0.2 和 0.6。我在 t = 0.2 处分割曲线,得到两条曲线。第二条曲线覆盖原始值 0.2
【问题讨论】: