第四课-rgb

// 设置颜色
void myDisplay(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(0.0f, 0.0f, 1.0f);
    glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
    glFlush();
}
注意:glColor 系列函数,在参数类型不同时,表示“最大”颜色的值也不同。
采用 f 和 d 做后缀的函数,以 1.0 表示最大的使用。
采用 b 做后缀的函数,以 127 表示最大的使用。
采用 ub 做后缀的函数,以 255 表示最大的使用。
采用 s 做后缀的函数,以 32767 表示最大的使用。
采用 us 做后缀的函数,以 65535 表示最大的使用。
这些规则看似麻烦,但熟悉后实际使用中不会有什么障碍。
/*

*/
#include <math.h>
const GLdouble Pi = 3.1415926536;
void myDisplay(void)
{
	int i;
	// glShadeModel(GL_FLAT);
	glClear(GL_COLOR_BUFFER_BIT);
	glBegin(GL_TRIANGLE_FAN);
	glColor3f(1.0f, 1.0f, 1.0f);
	glVertex2f(0.0f, 0.0f);
	for (i = 0; i <= 8; ++i)
	{
		glColor3f(i & 0x04, i & 0x02, i & 0x01);
		glVertex2f(cos(i * Pi / 4), sin(i * Pi / 4));
	}
	glEnd();
	glFlush();
}

  

使用 glShadeModel 函数可以关闭这种计算,如果顶点的颜色不同,则将顶点之间的其它点全部设置为与某
一个点相同。(直线以后指定的点的颜色为准,而多边形将以任意顶点的颜色为准,由实现决定。)为了避
免这个不确定性,尽量在多边形中使用同一种颜色。
glShadeModel 的使用方法:
glShadeModel(GL_SMOOTH); // 平滑方式,这也是默认方式
glShadeModel(GL_FLAT); // 单色方式
posted @ 2022-09-03 19:46  leochan007  阅读(39)  评论(0编辑  收藏  举报