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+프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Visual Studio 2019의 C++/CLI에서 출력되는 바이너리 경로 변경Visual C++ 프로젝트에서는 디폴트로 솔루션과 같은 계층에 플랫폼의 폴더( Win32 라든지 x64 라든지)나 구성 폴더( Debug 라든지 Release 라든지)가 만들어지지만, 여러가지 구성을 바꾸고 있으면...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.