Первым делом замечу, что здесь появился новый для нас режим:
glEnable (GL_NORMALIZE ,
Сделано это из-за того что поверхность при построении масштабируется и чтобы автоматически рассчитанные нормали "не уплыли", и используется этот режим.
Режим воспроизведения меняется по нажатию клавиши ввода, для его установки используется та же команда giuNurbsProperty:
If solid
then giuNurbsProperty (theNurb, GLU_DISPLAY_HODE, GLU_FILL)
else gluNurbsProperty(theNurb, GLu_DISPLAY_MODE, GLU_OUTLINE_P0LYGON]:
Команда собственно построения заключена в специальные командные скобки:
gluBegrnSurface (theNurb); gluNurbsSurface (theNurb,
В, dknots, 6, dknots, 4 * 3, 3,
@ctrlpoints, 4, 4,
GL_MAP2_VERTEX_3) ; gluEndSurface (theNurb);
В данном примере эти скобки не обязательны, поскольку они обрамляют лшственную команду.
Если вы внимательно разобрали примеры предыдущего раздела, то большинство параметров команды gluNurbsSurface не должны вызывать вопрос, они аналогичны параметрам команд для построения поверхности Безье.
Так, шестой и седьмой параметры задают "большой шаг" по каждой координате, ассоциированной с поверхностью, т. е. сколько вещественных чисел содержится в строке структуры данных и сколько вещественных чисел задают отдельную точку. Восьмой параметр — адрес массива контрольных точек, а последним параметром задается символическая константа, опреде-мющая тип возвращаемых значений; в данном случае ими являются трехмерные координаты вершин.
Опубликовал vovan666
November 01 2013 13:48:04 ·
0 Комментариев ·
4252 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.