用opengl画一个矩形,要求矩形边界是黑色,内部是红色。

图形库自带的画矩形函数glRect不能画出边界,怎么才能既画边界又填充内部颜色最好写出程序,谢谢了... 图形库自带的画矩形函数glRect不能画出边界,怎么才能既画边界又填充内部颜色
最好写出程序,谢谢了
展开
CMadchemist
推荐于2017-09-28 · 超过10用户采纳过TA的回答
知道答主
回答量:16
采纳率:0%
帮助的人:9.3万
展开全部
用纹理贴图+由顶点表示的四边形图元来实现

构造一个数组,表示我们所需的贴图:
GLbyte image[64][64][3];
int i,j;
for( i=0; i<64; i++ )
{
for( j=0; j<64; j++ )
{
if(i==0 || i==63 || j==0 || j==63)
image[i][j][0] = image[i][j][1] = image[i][j][2] = 0;//黑色边界线
else
{
image[i][j][0] = 255;
image[i][j][1] = image[i][j][2] = 0;
}//内部为红色
}
}

在opengl初始化中:
//启用纹理功能
glEnable(GL_TEXTURE_2D);
//加载纹理贴图
GLuint rectTexture;
glGenTextures(1, &rectTexture);
glBindTexture(GL_TEXTURE_2D, rectTexture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 64, 64, 0, GL_RGB, GL_UNSIGNED_BYTE, image);

在你的绘图函数中绘制矩形:
glBindTexture(GL_TEXTURE_2D, rectTexture);//激活贴图
glBegin(GL_QUADS);
//左下角
glTexCoord2f(0.f, 0.f);
glVertex3f(-10.f, -5.f, 0.f);
//右下角
glTexCoord2f(1.f, 0.f);
glVertex3f(10.f, -5.f, 0.f);
//右上角
glTexCoord2f(1.f, 1.f);
glVertex3f(10.f, 5.f, 0.f);
//左上角
glTexCoord2f(0.f, 1.f);
glVertex3f(-10.f, 5.f, 0.f);
glEnd();

注意,四边形要以逆时针为正面,在opengl初始化时还加入:
glFrontFace(GL_CCW);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式