【注】算法代码如下,其中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

#ifdef __APPLE__

#include

#else

#include

#endif

#include

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 绘制字母 计算机图形学相关推荐

  1. 计算机图形学画直线程序豆丁网,计算机图形学DDA生成直线画法程序.doc

    计算机图形学DDA生成直线画法程序 实验一.直线的生成 一.实验目的 掌握DDA直线画法.中点画线法和Bresenham画线法 掌握VC++简单程序设计方法 二.实验内容 根据提供的程序框架,修改部分 ...

  2. 计算机图形学画圆和直线代码,计算机图形学作业(中点法画直线和八分画圆法).doc...

    中点法画直线: void MidBresenhamLine(CDC *pDC,int x0,int y0,int x1,int y1,int color){ int dx,dy,d,up,down,x ...

  3. OpenGL南邮计算机图形学实验报告二——两个纹理的渐变变换和移动

    OpenGL南邮计算机图形学实验报告二--两个纹理的渐变变换和移动 计算机图形学的新题目要求 OpenGL配置参考: 南邮老前辈wonz哥的OpenGL配置(Shader.h始终不用改).SOIL2 ...

  4. OpenGL南邮计算机图形学实验报告四——用键盘控制物体

    OpenGL南邮计算机图形学实验报告四--用键盘控制物体 计算机图形学的新题目要求 OpenGL配置参考: 南邮老前辈wonz哥的OpenGL配置(Shader.h始终不用改).SOIL2 环境配置. ...

  5. OpenGL南邮计算机图形学实验报告三——实现类似地月系统的两物体环绕移动

    OpenGL南邮计算机图形学实验报告三--实现类似地月系统的两物体环绕移动 计算机图形学的新题目要求 OpenGL配置参考: 南邮老前辈wonz哥的OpenGL配置(Shader.h始终不用改).SO ...

  6. OpenGL学习笔记 - 计算机图形学和现代图形API

    一.计算机图形学 1.简述 wiki上的解释说,"计算机图形学是计算机科学的一个子领域,它研究数字合成和操纵视觉内容的方法.尽管该术语通常指的是对三维计算机图形学的研究,但它也包括二维图形和 ...

  7. 计算机图形及分类的相关知识,“计算机图形学”课程教与学

    摘 要:本文针对作者几年来在"计算机图形学"课程教学过程中实际遇到的问题,从教师如何教授知识和学生如何学习知识两个方面进行深入分析和研究,提出了改进课堂教学.实验教学以及学生学习的 ...

  8. 计算机图形图像学的专业特性,计算机图形学第1_5章课后习题参考答案

    第一章 1.试述计算机图形学研究的基本内容? 答:见课本P5-6页的1.1.4节. 2.计算机图形学.图形处理与模式识别本质区别是什么?请各举一例说明. 答:计算机图形学是研究根据给定的描述,用计算机 ...

  9. 计算机怎样用计算法绘制圆弧,计算机图形学圆弧生成算法具体程序实现

    数学与软件科学学院实验报告 学期: 2010 至 2011 第一学期 2010年 10月 5日课程名称: 计算机图形学专业:信息与计算科学2007级5班实验编号: 03 实验项目: 圆弧生成算法 指导 ...

最新文章

  1. ios bug 分析
  2. IT人士群聚喝酒的讲究(转载)
  3. MFC窗口位置和大小的获取
  4. Hadoop学习记录(4)|MapReduce原理|API操作使用
  5. win10电脑亮度无法调节
  6. Maven环境配置及IntelliJ IDEA中的Maven部署(亲自测试)
  7. PHP如何保存当前用户
  8. java dom xml 换行,dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件...
  9. 裸眼 3D 是什么效果?
  10. rds 数据导入mysql_将数据导入到 Amazon RDS 数据库实例
  11. 阿里云linux下web服务器配置
  12. hadoop hive集群_基于伪分布式Hadoop搭建Hive平台详细教程
  13. DNS 正向查找与反向查找
  14. 机器学习常见算法个人总结
  15. JAVA深入研究——Method的Invoke方法(转)
  16. Oracle学习III —— Oracle客户端工具
  17. app logo显示不全没有铺满
  18. 位(bit)、字节(Byte)、MB(兆位)换算关系
  19. 空间直角坐标转换成大地坐标matlab代码(附精度)
  20. c语言的源程序的后缀名是,C语言源程序文件的后缀名是()。

热门文章

  1. [HNUOJ10029] 幻方矩阵(奇数阶幻方的两种解法)
  2. 用计算机玩反恐精英的男孩,玩CS的男人
  3. SharePoint自动初始化网站列表
  4. 视频输入输出1-读取视频构造函数
  5. Worms W.M.D for Mac v1.0.0.193 (百战天虫:战争武器)
  6. [经验教程]为什么淘宝显示定位失败怎么重新开启淘宝定位?
  7. Xiaojie雷达之路---雷达原理(二刷)多普勒效应及其在雷达中的应用
  8. 判断安卓苹果IOS自动跳转到对应链接下载地址升级版
  9. win7不能安装adobe pdf打印机的解决方案
  10. upload-labs通关学习笔记