OpenGL 绘制字母 计算机图形学
2013-08-23 15:07
204 查看
绘制字母 计算机图形学" TITLE="OpenGL 绘制字母 计算机图形学" />
【注】算法代码如下,其中void
CharMap(void)为绘制字符的算法,其中的函数段实现了两种绘制字符的不同方法,其中:
glColor
3f(0.0,0.0,0.0);
char text[] =
{'a','A','b','B','c','C','d','D','e','E','f','F'};
glRasterPos2i(20,40);
for (int k=0;k<12;k++){
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24,text[k]);
//glutBitmapCharacter(GLUT_BITMAP_8_BY_13,text[k]);
}为绘制位图的算法,其中的glutBitmapCharacter为绘制位图的库函数,其中的第一个参数为常量,指代要绘制的字体和大小,第二个参数为要绘制的字符数组。
下面的代码段实现了上图中显示的下方比较大的且有旋转的字体:
glScalef(0.1,0.1,0.0);//控制了字体的缩放
glRotatef(300,20.0,20.0,0.0);//控制了字体的旋转
glRasterPos2i(20,40);//控制显示位置
for (int k=0;k<12;k++){
glutStrokeCharacter(GLUT_STROKE_ROMAN,text[k]);
//glutBitmapCharacter(GLUT_BITMAP_8_BY_13,text[k]);
}
源代码如下:
#include<windows.h>
#ifdef __APPLE__
#include
<GLUT/glut.h>
#else
#include
<GL/glut.h>
#endif
#include
<stdlib.h>
void init (void)
{
glClearColor (1.0, 1.0, 1.0, 0.0); // Set display-window
color to white.
glMatrixMode (GL_PROJECTION);
// Set projection parameters.
gluOrtho2D (0.0, 200.0, 0.0, 150.0);
}
void CharMap(void)
{
glClear (GL_COLOR_BUFFER_BIT); // Clear display
window.
//
glColor3f (0.0, 0.0, 0.0);
// Set line segment color to red.
glColor3f(0.0,0.0,0.0);
char text[] =
{'a','A','b','B','c','C','d','D','e','E','f','F'};
glRasterPos2i(20,40);
for (int k=0;k<12;k++){
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24,text[k]);
//glutBitmapCharacter(GLUT_BITMAP_8_BY_13,text[k]);
}
glScalef(0.1,0.1,0.0);
glRotatef(300,20.0,20.0,0.0);
glRasterPos2i(20,40);
for (int k=0;k<12;k++){
glutStrokeCharacter(GLUT_STROKE_ROMAN,text[k]);
//glutBitmapCharacter(GLUT_BITMAP_8_BY_13,text[k]);
}
glFlush();
}
int main (int argc, char** argv)
{
glutInit (&argc, argv);
// Initialize GLUT.
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); //
Set display mode.
glutInitWindowPosition (50, 100); //
Set top-left display-window position.
glutInitWindowSize (1000, 600);
// Set display-window width and height.
glutCreateWindow ("An Example OpenGL Program"); // Create display
window.
init ( );
// Execute initialization procedure.
glutDisplayFunc (CharMap);
// Send graphics to display window.
glutMainLoop ( );
return 0;
// Display everything and wait.
}
相关文章推荐
- 计算机图形学(OPENGL&nbsp;的&nbsp;NOTE)
- c&OpenGL实现计算机图形学:双步绘制直线法绘制菱形
- 填充图形属性&nbsp;计算机图形学&nbsp;Opengl
- 计算机图形学-基于OpenGL的绘制直线及图形变换练习
- 计算机图形学-基于OpenGL的绘制空间曲线
- 计算机图形学-OpenGL-绘制五角星
- 计算机图形学-基于OpenGL的绘制Bezier曲线
- 计算机图形学——OpenGL学习系列之绘制3D下的小桌子
- 计算机图形学和OpenGL(二)坐标系和绘制点线函数
- OpenGL&nbsp;实现Bresenham法绘制圆图元…
- 计算机图形学02一一OpenGL 代码实现绘制一条线
- OpenGL&nbsp;绘制长方体&nbsp;计算机图形学
- 熟悉OpenGL的显示列表&nbsp;计算机图形…
- 有关于计算机图形学 d3d & opengl 出现的问题
- 计算机图形学——OpenGL渲染基础架构二之着色器的使用
- 计算机图形学 所需要的数学知识--<<计算机图形学(第三版)>>读书笔记
- 计算机图形学笔记---GPU图形绘制管线
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_5_其他曲线
- 计算机图形学-实验3-掌握利用OpenGL函数进行鼠标、键盘操作,创建菜单
- 计算机网络常用的 dos 命令