![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день! Возник вопрос, который я пока не смогла решить.
Подгружаю в программу трехмерный куб в формате .obj, вершинами которого хочу иметь возможность управлять (изменять в пространстве их положение). Код:
For J :=1 to M.Group[i].Faces do begin with M.Group[i].Face[J] do begin case Count of // воспроизводим модель полигонами 3 : glBegin(GL_TRIANGLES); 4 : glBegin(GL_QUADS); else glBegin(GL_POLYGON); end; for K :=0 to Count-1 do begin if M.Normals > 0 then glNormal3fv( @M.Normal[nIndex[K]] ); if M.TexCoords > 0 then glTexCoord2fv( @M.TexCoord[tIndex[K]] ); glVertex3fv( @M.Vertex[vIndex[K]] ); // рисование вершины end; glEnd(); Нарисовать точки в каждой из вершин подгруженного объекта труда не составило, а вот чтобы впоследствии управлять ими нужно как-то преобразовать структуру glVertex3fv( @M.Vertex[vIndex[K]] ); к виду glVertex3f(v_x[vIndex[K]],v_y[vIndex[K]],v_z[vIndex[K]]); где vIndex[K] -- номер вершины от 1 до 8. Не могли бы вы подсказать как, а то я в принципе не очень понимаю, как 3 координаты хранятся в 1ом массиве? Спасибо! |