opengl--复杂多边形

步骤

  • 初始化对象
  • 设置回调
  • 顶点准备
  • 绘制轮廓
  • 绘制内部
  • 删除对象

初始化对象

//初始化对象
GLUtriangulatorObj *tess; 
tess = gluNewTess(); 

设置回调

//设置回调
gluTessCallback(tess, GLU_BEGIN, (void(__stdcall *)())glBegin);
gluTessCallback(tess, GLU_VERTEX, (void(__stdcall *)())glVertex3dv);
gluTessCallback(tess, GLU_END, (void(__stdcall *)())glEnd);

删除对象

//删除对象
gluDeleteTess(tess); 

顶点准备

//顶点准备
static GLdouble  outside[7][3] = 
{ 
	{ 0.0, 1.0, 0.0 }, 
	{ -0.5, -1.0, 0.0 }, 
	{ -0.4, -1.0, 0.0 }, 
	{ -0.2, -0.1, 0.0 }, 
	{ 0.2, -0.1, 0.0 }, 
	{ 0.4, -1.0, 0.0 }, 
	{ 0.5, -1.0, 0.0 } 
}; 
static GLdouble  inside[3][3] = 
{ 
	{ 0.0, 0.6, 0.0 }, 
	{ -0.1, 0.1, 0.0 }, 
	{ 0.1, 0.1, 0.0 } 
}; 

绘制轮廓

//绘制轮廓
gluBeginPolygon(t

你可能感兴趣的:(#,opengl)