OpenGL中的渐变颜色绘图(应力可视化)

#include <GL/glut.h>
#include <iostream>
#include <cmath>
using namespace std;
const GLsizei width=;
const GLsizei height=;//设置窗口的宽和高 void myInit()
{
glClearColor(,,,);
} void show()
{
GLsizei dw;
int n,i;
dw=;
n=(width-)/dw;
cout<<"n="<<n<<endl;
glClear(GL_COLOR_BUFFER_BIT);
GLsizei r,g,b;
for (i=;i<n;i++)
{
//绘制应力云图的关键就是下面的这五种不同的颜色对应关系
//根据自己需要可以设置不同的等级,四种也是可以的
if (i>=&&i<=n/)
{
r=;
g=i*/(n/);
b=;
}
else if (i>n/&&i<=*n/)
{
r=-(i-n/)*/(n/);
g=;
b=;
}
else if(i>*n/&&i<=*n/)
{
r=;
g=;
b=(i-*n/)*/(n/);
}
else if(i>*n/&&i<=*n/)
{
r=;
g=-(i-*n/)*/(n/);
b=;
}
else
{
r=(i-*n/)*/(n/);
g=;
b=;
}
glColor3f(r/255.0f,g/255.0f,b/255.0f);
glRectf(1.0*i*dw,0.0,1.0*(i+)*dw,height);
}
glFlush();
}
void reshape(int w,int h)
{
glViewport(,,(GLsizei)w,(GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(,w,,h,-,);//设置视野的范围,(左,右,上,下,前,后)
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
} int main(int argc,char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(,);
glutInitWindowSize(width,height);
glutCreateWindow("应力云图绘制");
myInit();
glutDisplayFunc(show);
glutReshapeFunc(reshape);
glutMainLoop();
return ;
}

OpenGL中的渐变颜色绘图(应力可视化)的更多相关文章
- OpenGL中的常用绘图的命令与效果(经验设置)
1. 剔除多边形表面 在三维空间中,一个多边形虽然有两个面,但我们无法看见背面的那些多边形,而一些多边形虽然是正面的,但被其他多边形所遮挡.如果将无法看见的多边形和可见的多边形同等对待,无疑会降低我们 ...
- openGl从零开始之添加颜色
OpenGL 支持两种颜色模式:一种是 RGBA模式,一种是 颜色索引模式.无论哪种颜色模式,计算机都必须为每一个像素保存一些数据,即通过每一个像素的颜色,来改变整体图形的颜色.不同的是, RGBA ...
- openGl学习之加入颜色
OpenGL 支持两种颜色模式:一种是 RGBA模式.一种是 颜色索引模式. 不管哪种颜色模式.计算机都必须为每个像素保存一些数据,即通过每个像素的颜色,来改变总体图形的颜色.不同的是. RGBA 模 ...
- OPenGL中的缓冲区对象
引自:http://blog.csdn.net/mzyang272/article/details/7655464 在许多OpenGL操作中,我们都向OpenGL发送一大块数据,例如向它传递需要处理的 ...
- Python绘图与可视化
Python有很多可视化工具,本篇只介绍Matplotlib. Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,它可以在Python脚本.IPython的交互环境下.Web应用 ...
- python金融与量化分析------Matplotlib(绘图和可视化)
-----------------------------------------------------------Matplotlib:绘图和可视化------------------------ ...
- OpenGL中的帧缓存
OpenGL中的帧缓存 在OpenGL窗口中, 左下角的像素为(0, 0). 一般而言, 像素(x, y)占据的矩形区域左下角为(x, y), 右上角为(x+1, y+1). 1. 缓存及其用途 [1 ...
- openGL中的原理理解1---一个视图需要支持OGL需要配置,GLenbalView的理解
OpenGL的绘图机制是 OpenGL的绘图方式与Windows一般的绘图方式是不同的,主要区别如下: (1)Windows采用的是GDI(Graphy Device Interface 图形设备接口 ...
- 跟我一起玩Win32开发(23):渐变颜色填充
GradientFill函数可以对特定的矩形区域或者三角形区域进行渐变颜色的填充.我们先来看看GradientFill函数到底长得什么样子,帅不帅. BOOL GradientFill( _In_ ...
随机推荐
- Informatica_(5)高级应用
五.高级应用21.任务分区 分区是通过并行处理来提供PowerCenter的执行效率. 分区类型包括:Database partitioning.Hash Auto-keys.Hash User-ke ...
- bowtie:短序列比对的新工具
bowtie:短序列比对的新工具(转) (2014-11-17 22:15:24) 转载▼ 标签: 转载 原文地址:bowtie:短序列比对的新工具(转)作者:玉琪星兆 Bowtie是一个超级快速 ...
- Python之路(第二十七篇) 面向对象进阶:内置方法、描述符
一.__call__ 对象后面加括号,触发执行类下面的__call__方法. 创建对象时,对象 = 类名() :而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()( ...
- boost timer代码学习笔记
socket连接中需要判断超时 所以这几天看了看boost中计时器的文档和示例 一共有五个例子 从简单的同步等待到异步调用超时处理 先看第一个例子 // timer1.cpp: 定义控制台应用程序的入 ...
- Linux修改/etc/profile配置错误command is not found自救方法
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
- Git/Github的使用并与Eclipse整合(zz)
Git/Github的使用并与Eclipse整合 您的评价: 收藏该经验 Git简介 Git是一个免费的.分布式的版本控制工具,或是一个强调了速度快的源代码管理工具.每一 ...
- ''TclError: no display name and no $DISPLAY environment variable''解决方法
在模块前写入一下代码: import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt 具体解释见 http://m ...
- 2017/2/14springmvc基础学习
一:核心类与接口 DispatcherServlet :前置控制器 ,HandlerMapping:请求处理接口 HandlerMapping:接口实现类 ViewResolver接口的实现类Url ...
- PHP filter 函数FILTER_CALLBACK 过滤数据
<?php function convertSpace($string) { return str_replace(" ", "_", $string); ...
- 关于Rigidbody,Collider和CharacterController三者之间的关系和用法的总结
Rigidbody:多用在“物体”上,因为“物体”都是“死”的,他们的运动一般都是靠物理系统.所以对于Rigidbody的移动,不要用Translate(),要用各种“力”, 比如:Rigidbody ...