![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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]); |
|
#3
|
|||
|
|||
|
Цитата:
Спасибо, кажется поняла. Правда все равно не получается вытащить эти значения( Вероятно неверно что-то в синтаксе. Переписала Код:
glVertex3fv( @M.Vertex[vIndex[K]] ); Цитата:
Последний раз редактировалось msFishbein, 17.03.2013 в 02:42. |