VC++实现的OpenGL线性渐变色绘制操作示例
本文实例讲述了VC++实现的OpenGL线性渐变色绘制操作。分享给大家供大家参考,具体如下:
用到的思路就是在应力的最大值和最小值之间划分区间,每个区间的标识点对应不同的颜色值。
然后在区间内的应力值对应的颜色就进行插值来计算。
代码如下:
#include <GL/glut.h> #include <iostream> #include <cmath> using namespace std; const GLsizei width=640; const GLsizei height=480;//设置窗口的宽和高 void myInit() { glClearColor(0,0,0,0); } void show() { GLsizei dw; int n,i; dw=2; n=(width-1)/dw; cout<<"n="<<n<<endl; glClear(GL_COLOR_BUFFER_BIT); GLsizei r,g,b; for (i=0;i<n;i++) { //绘制应力云图的关键就是下面的这五种不同的颜色对应关系 //根据自己需要可以设置不同的等级,四种也是可以的 if (i>=0&&i<=n/5) { r=255; g=i*255/(n/5); b=0; } else if (i>n/5&&i<=2*n/5) { r=255-(i-n/5)*255/(n/5); g=255; b=0; } else if(i>2*n/5&&i<=3*n/5) { r=0; g=255; b=(i-2*n/5)*255/(n/5); } else if(i>3*n/5&&i<=4*n/5) { r=0; g=255-(i-3*n/5)*255/(n/5); b=255; } else { r=(i-4*n/5)*255/(n/5); g=0; b=255; } glColor3f(r/255.0f,g/255.0f,b/255.0f); glRectf(1.0*i*dw,0.0,1.0*(i+1)*dw,height); } glFlush(); } void reshape(int w,int h) { glViewport(0,0,(GLsizei)w,(GLsizei)h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0,w,0,h,-100,100);//设置视野的范围,(左,右,上,下,前,后) glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } int main(int argc,char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowPosition(100,100); glutInitWindowSize(width,height); glutCreateWindow("应力云图绘制"); myInit(); glutDisplayFunc(show); glutReshapeFunc(reshape); glutMainLoop(); return 0; }
效果为:
希望本文所述对大家VC++程序设计有所帮助。
上一篇:C语言中strlen() strcpy() strcat() strcmp()函数的实现方法
栏 目:C语言
本文地址:https://www.xiuzhanwang.com/a1/Cyuyan/1294.html
您可能感兴趣的文章
- 04-02c语言的正则匹配函数 c语言正则表达式函数库
- 04-02c语言中对数函数的表达式 c语言中对数怎么表达
- 04-02C语言中怎么打出三角函数 c语言中怎么打出三角函数的值
- 01-10c语言求1+2+...+n的解决方法
- 01-10求子数组最大和的解决方法详解
- 01-10深入理解约瑟夫环的数学优化方法
- 01-10深入二叉树两个结点的最低共同父结点的详解
- 01-10数据结构课程设计- 解析最少换车次数的问题详解
- 01-10c语言 跳台阶问题的解决方法
- 01-10如何判断一个数是否为2的幂次方?若是,并判断出来是多少次方
阅读排行
本栏相关
- 04-02c语言函数调用后清空内存 c语言调用
- 04-02func函数+在C语言 func函数在c语言中
- 04-02c语言的正则匹配函数 c语言正则表达
- 04-02c语言用函数写分段 用c语言表示分段
- 04-02c语言中对数函数的表达式 c语言中对
- 04-02c语言编写函数冒泡排序 c语言冒泡排
- 04-02c语言没有round函数 round c语言
- 04-02c语言分段函数怎么求 用c语言求分段
- 04-02C语言中怎么打出三角函数 c语言中怎
- 04-02c语言调用函数求fibo C语言调用函数求
随机阅读
- 04-02jquery与jsp,用jquery
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-11ajax实现页面的局部加载
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-10delphi制作wav文件的方法
- 01-10SublimeText编译C开发环境设置
- 01-10C#中split用法实例总结
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文