2011-12-17 1 views
0

У меня есть отобразить коллекцию 3d точек облака этим кодом:OpenGL получить 2d проекции из 3d точек

glEnableClientState(GL_VERTEX_ARRAY); 
glEnableClientState(GL_COLOR_ARRAY); 
if (keyframes[i]->numberOf3DPoints > 0) 
{ 
    glColorPointer(3, GL_UNSIGNED_BYTE, sizeof(PointColor), ((uint8_t*)keyframes[i]->points+12)); 
    glVertexPointer(3, GL_FLOAT, sizeof(PointColor), ((float*)keyframes[i]->points)); 
    glDrawArrays(GL_POINTS, 0, keyframes[i]->numberOf3DPoints); 
} 
glDisableClientState(GL_VERTEX_ARRAY); 
glDisableClientState(GL_COLOR_ARRAY); 

Этот код выводит массив 3d облака точек с его значениями цвета, я хочу получить массив из 2d точек и отображение этих точек в 2d (верхний вид трехмерных точек)

+0

Что именно вы хотите сделать? –

+0

как конвертировать 3d-точки в 2d точек, у меня есть 3d-точки от kinect, и я хочу создать 2d-карту для среды. –

+0

Вы имеете в виду плоскую проекцию? –

ответ

1

This projection tutorial подробно объясняет преобразования матриц проекции.

Чтобы получить проекцию сверху, установите матрицу проекции и установите камеру выше и направьте ее в направлении к плоскости. И этого должно быть достаточно.