Иллюстрированный самоучитель по Visual Studio.Net

доставка товара из турции | Нетішин подробности здесь. | Поздравление на мобильный телефон читать далее. | Запчасти к посудомоечным машинам krona смотрите на http://detalest.ru. |

Как убирать внутренние линии


Каждой вершине по умолчанию присваивается булевский признак (флаг) того, что из нее может выходить видимое ребро (линия). Если надо отменить рисование линии, например скрыть тесселяцию вогнутого полигона, то можно снять флаг ребра командой glEdgeFlag(GL_FALSE); для текущей вершины. Затем можно вновь установить его, когда дело дойдет до ребер, которые должны быть видимы — команда glEdgeFlag(GL_TRUE);. Попробуйте самостоятельно вставить флаги ребер в следующем фрагменте программы так, чтобы скрыть линию соединения двух четырехугольников. Попробуйте затем заменить алгоритм так, чтобы изобразить ту же фигуру в виде одного полигона:

void _stdcall OnDraw()

{

glClear (GL_COLOR_BOFFER_BIT); glColorSd (1., 0.4, 1.);

//====== Вогнутый шестиугольник, но мы зададим его

//====== в виде двух четырехугольников

float с[6][3] =

{

200. 200.,0.,

200. 100.,0.,

250. 20.,0.,

300. 100.,0.,

300. 200.,0.,

250. 100.,0.,

};

glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

glBegin(GL_QUADS);

glVertex3fv(c[5])

glVertex3fv(c[0])

glVertex3fv(c[l])

glVertex3fv(c[2])

glVertex3fv(c[5])

glVertex3fv(c[2])

glVertex3fv(c[3])

glVertex3fv(c[4])

glEnd();

glFlush ();

}




Начало  Назад  Вперед