![]() |
|
|
Регистрация | << Правила форума >> | 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ом массиве? Спасибо! |
#2
|
||||
|
||||
![]() glVertex3fv обращается к массиву типа
Код:
var Coo : array[0..2] of GLfloat; ... glVertex3fv(@Coo) Код:
glVertex3f(Coo[0], Coo[1], Coo[2]); Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
![]() Цитата:
Спасибо, кажется поняла. Правда все равно не получается вытащить эти значения( Вероятно неверно что-то в синтаксе. Переписала Код:
glVertex3fv( @M.Vertex[vIndex[K]] ); Цитата:
Последний раз редактировалось msFishbein, 17.03.2013 в 02:42. |