OpenGL 默认提供了几种基本图形的创建,只需传入参数调用即可
/*球体
gltMakeSphere(GLTriangleBatch& sphereBatch, GLfloat fRadius, GLint iSlices, GLint iStacks)
sphereBatch:三角形批次类
fRadius:球体半径
iSlices:构成球体的三角形带
iStacks:每个三角形带的三角形对
*/
gltMakeSphere(sphereBatch, 3, 20, 40);
/*甜甜圈(环)
gltMakeTorus(GLTriangleBatch& torusBatch, GLfloat majorRadius, GLfloat minorRadius, GLint numMajor, GLint numMinor)
torusBatch:三角形批次类
majorRadius:外圆半径
minorRadius:内圆半径
numMajor:三角形环的数量
numMinor:每一个三角形环上的三角形对
*/
gltMakeTorus(torusBatch,3.0f,0.75f,50,40);
/*圆柱
gltMakeCylinder(GLTriangleBatch& cylinderBatch, GLfloat baseRadius, GLfloat topRadius, GLfloat fLength, GLint numSlices, GLint numStacks)
cylinderBatch:三角形批次类
baseRadius:底面圆半径
topRadius:顶部圆半径
numSlices:构成圆柱侧面的三角形带个数
numStacks:每条三角形带上的三角形对个数
*/
gltMakeCylinder(cylinderBatch,2.5f,2.5f,5.0f,20,20);
/*圆锥
把圆柱的某个面的半径置位0即可
*/
gltMakeCylinder(coneBatch,2.5f,0.f,3,20,20);
/* 磁盘
gltMakeDisk(GLTriangleBatch& diskBatch, GLfloat innerRadius, GLfloat outerRadius, GLint nSlices, GLint nStacks)
diskBatch:三角形批次类
innerRadius:内圆半径
outerRadius:外圆半径
nSlices:磁盘面的三角形带个数
nStacks:每个三角形带上的三角形对个数
*/
gltMakeDisk(diskBatch,2.0f,4.5f,20,10);
网友评论