MBo, Спасибо за ускоренный ответ и процедуру, основанную на вашем совете, выглядит следующим образом:
void cap_middle(int i, double theta, float[,] mmp, vec3 prev, vec3 curr, vec3 next,float rad,float[] cen)
{
vec3 T = (curr - next);
T = T.Normalized;
vec3 B = vec3.Cross(next - curr, curr - prev);
B = B.Normalized;
vec3 N = vec3.Cross(B, T);
N = N.Normalized;
float x = (float)Math.Cos(theta)*rad;
float y = (float)Math.Sin(theta)*rad;
vec3 vertex = curr + B * x + N * y;
mmp[i,0] = cen[0] + vertex.x;
mmp[i,1] = cen[1] + vertex.y;
mmp[i,2] = cen[2] + vertex.z;
}
Хотя, возникла еще одна проблема, соединительные цилиндры с каждого подключенного пути Безье, похоже, имеют обмотку проблема заказа, как показано на графике c. Вершины не согласованы. Любые идеи?
порядок намотки