GLUT函数说明3

来源:互联网 发布:淘宝店铺怎么做直通车 编辑:程序博客网 时间:2024/05/22 07:48

九、字体渲染

void glutBitmapCharacter(void* font, int character);

绘制一个图像字符

Font表示要使用的图像字体,如下表所示:GLUT_BITMAP_8_BY_13一种固定宽度字体,每个字符都放在一个8x13像素的矩形框内GLUT_BITMAP_9_BY_15一种固定宽度字体,每个字符都放在一个9x15像素的矩形框内GLUT_BITMAP_TIMES_ROMAN_10一种10点均匀间距的Times Roman字体GLUT_BITMAP_TIMES_ROMAN_24一种24点均匀间距的Times Roman字体GLUT_BITMAP_HELVETICA_10一种10点均匀间距的Helvetica字体GLUT_BITMAP_HELVETICA_12一种12点均匀间距的Helvetica字体GLUT_BITMAP_HELVETICA_18一种18点均匀间距的Helvetica字体Character表示要绘制的字符

int glutBitmapWidth(GLUTbitmapFont font, int character);

返回一个图像字符的宽度

font是指定的图像字体,如下表所示:GLUT_BITMAP_8_BY_13一种固定宽度字体,每个字符都放在一个8x13像素的矩形框内GLUT_BITMAP_9_BY_15一种固定宽度字体,每个字符都放在一个9x15像素的矩形框内GLUT_BITMAP_TIMES_ROMAN_10一种10点均匀间距的Times Roman字体GLUT_BITMAP_TIMES_ROMAN_24一种24点均匀间距的Times Roman字体GLUT_BITMAP_HELVETICA_10一种10点均匀间距的Helvetica字体GLUT_BITMAP_HELVETICA_12一种12点均匀间距的Helvetica字体GLUT_BITMAP_HELVETICA_18一种18点均匀间距的Helvetica字体character为指定的字符

返回指定字符的宽度,以像素为单位

void glutStrokeCharacter(void* font, int character);

绘制一个图形字符

Font表示要使用的图形字体,如下表所示:GLUT_STROKE_ROMAN一种等间距的Roman Simplex字体,仅包括32到127的ASCII字符GLUT_STROKE_MONO_ROMAN一种单一间距的Roman Simplex字体,仅包括32到127的ASCII字符Character为要绘制的字符

int glutStrokeWidth(GLUTstrokeFont font, int character);

返回一个图形字体的宽度

Font是指定的图形字体,如下表所示:GLUT_STROKE_ROMAN一种等间距的Roman Simplex字体,仅包括32到127的ASCII字符GLUT_STROKE_MONO_ROMAN一种单一间距的Roman Simplex字体,仅包括32到127的ASCII字符Character为绘制的字符

十、实体绘制

以下所有函数中,radius表示球体的半径,slices表示球体围绕z轴分割的数目,stacks表示球体沿着z轴分割的数目。

绘制中心在模型坐标原点,半径为radius的球体,球体围绕z轴分割slices次,球体沿着z轴分割stacks次

void glutWireSphere(GLdouble radius, GLint slices, GLint stacks); 线框球
void glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); 实心球

void glutWireCube(GLdouble size); 线框立方体
void glutSolidCube(GLdouble size); 实心立方体

void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); 线框圆环
void glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); 实心圆环

void glutWireIcosahedron(void); 线框20面体
void glutSolidIcosahedron(void); 实心20面体

void glutWireOctahedron(void); 线框8面体
void glutSolidOctahedron(void); 实心8面体

void glutWireTetrahedron(void); 线框4面体
void glutSolidTetrahedron(void); 实心4面体

void glutWireDodecahedron(GLdouble radius); 线框12面体
void glutSolidDodecahedron(GLdouble radius); 实心12面体

void glutWireCone(GLdouble radius, GLdouble height, GLint slices, GLint stacks); 线框圆锥体
void glutSolidCone(GLdouble radius, GLdouble height, GLint slices, GLint stacks); 实心圆锥体

void glutWireTeapot(GLdouble size); 线框茶壶
void glutSolidTeapot(GLdouble size); 实心茶壶

十一、实例

初始化及简单平面图形

#include <GL/glut.h>void renderScene(void) {  glClear(GL_COLOR_BUFFER_BIT);  glBegin(GL_TRIANGLES);  glVertex3f(-0.5,-0.5,0.0);  glVertex3f(0.5,0.0,0.0);  glVertex3f(0.0,0.5,0.0);  glEnd();  glFlush();}int main(int argc, char **argv) {  glutInit(&argc, argv);  glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);  glutInitWindowPosition(100,100);  glutInitWindowSize(320,320);  glutCreateWindow("3D Tech- GLUT Tutorial");  glutDisplayFunc(renderScene);  glutMainLoop();  return 0;}