Используйте NURBS в SharpGL
Я написал программу для отображения некоторых измерений давления. Я хочу использовать NURBS для визуализации деталей. Так что я сориентировал меня ввести описание ссылки здесь
Мое поле имеет диапазон 40х48 квадратов. Итак, 40 строк и 48 столбцов. Компонент Z (высота) должен быть переменным.
Но я не понимаю, как определить
glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, &ctrlpoints[0][0][0]);
// Parameter:
// target:
// What the control points represent (e.g. MAP2_VERTEX_3).
//
// u1:
// Range of the variable 'u'.
//
// u2:
// Range of the variable 'u.
//
// ustride:
// Offset between beginning of one control point and the next.
//
// uorder:
// The degree plus one.
//
// v1:
// Range of the variable 'v'.
//
// v2:
// Range of the variable 'v'.
//
// vstride:
// Offset between beginning of one control point and the next.
//
// vorder:
// The degree plus one.
//
// points:
// The data for the points.
Я не знаю, как установить параметры в моем случае. Например, что такое u1 и u2? ИЛИ каковы мои контрольные точки?
1 ответ
В этой ссылке вы можете найти более подробное описание параметров:
https://msdn.microsoft.com/en-us/library/windows/desktop/ee872053(v=vs.85).aspx
На вашей поверхности направление X задается координатой u, а направление Y задается координатой v. Обычно для u1-u2 и v1-v2 устанавливается интервал [0,1].
Порядок поверхности интерполируется между точками (вы можете выполнить линейную интерполяцию с порядком =1, квадратичную интерполяцию с порядком =2 и т. Д. 2 или 3 должны подойти для ваших нужд.
С учетом сказанного, я боюсь, что метод "glMap2f" не будет точно представлять ваши данные, так как в целом "контрольные точки" не находятся на самой поверхности (как показано в следующем )
Вы должны найти алгоритм для интерполяции поверхности nurbs из облака точек, а затем использовать glMap2f с вычисленными контрольными точками.
Если вы хотите узнать больше о Nurbs, ищите "Книгу Nurbs" от L. Piegl