OpenGL线性渐变色绘制
来源:互联网 发布:刘德华谁人知国语版 编辑:程序博客网 时间:2024/06/05 09:05
用到的思路就是在应力的最大值和最小值之间划分区间,每个区间的标识点对应不同的颜色值。
然后在区间内的应力值对应的颜色就进行插值来计算。
代码如下:
#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;}
0 0
- OpenGL线性渐变色绘制
- html5绘制渐变图形-线性渐变
- 笔记十六(绘制六——线性渐变色)
- html5 canvas学习--绘制线性渐变
- 绘制渐变色
- layer绘制渐变色
- 绘制渐变色
- 渐变色绘制
- 【Html5每日练习】canvas绘制线性渐变图形
- ios中绘制渐变色
- canvas绘制之渐变色
- 使用CAGradientLayer绘制渐变色
- OpenGL像素填充渐变色
- 线性渐变
- 线性渐变
- 线性渐变
- 渐变:线性渐变、径向渐变
- html5 canvas 绘制矩形, 方法,线性渐变,径向渐变,透明等
- C语言的声明与定义
- 最短路径(Dijkstra)
- Java-构建器模式(Buider模式)
- select…start with…connect by…prior ORDER SIBLINGS BY
- Java集合基础知识
- OpenGL线性渐变色绘制
- BeginPaint和GetDC的区别
- Hibernate多对多注解配置实例
- iOS 文字属性
- 解决网页12306网站没有提示音
- 字符数组与字符串
- NSDate教程(Swift版)
- CAS服务端-配置数据库查询认证机制
- java爬虫之爬百度贴吧