opengl 多边形颜色怎么填充不了 5
voidfill(){COLORREFc,body_color;body_color=RGB(0,0,0);//实例化,这是啥颜色setcolor(body_color)...
void fill(){
COLORREF c,body_color;
body_color=RGB(0,0,0);//实例化,这是啥颜色
setcolor(body_color); //设置画笔颜色
setfillstyle(c, SOLID_FILL, NULL); //设置填充颜色
int x,y,p;
int flag = 0;
c=getpixel(x,y);
for(int j=0;j<=y0+h;j++) //y方向扫描线
{
for(int i=0;i<640;i++) //x方向,从左到右找border点
{
c=getpixel(i,j); //得到该点颜色
if(c==body_color && flag==0) //是边框色
{ //是第一次遇到
p = i;
flag = 1;
}
else if(c==body_color && flag==1) //是边框色
{ //是第二次遇到
flag = 2;
line(p,j,i,j);
}
}
flag = 0; //清0,以方便下一轮再来
}
} 展开
COLORREF c,body_color;
body_color=RGB(0,0,0);//实例化,这是啥颜色
setcolor(body_color); //设置画笔颜色
setfillstyle(c, SOLID_FILL, NULL); //设置填充颜色
int x,y,p;
int flag = 0;
c=getpixel(x,y);
for(int j=0;j<=y0+h;j++) //y方向扫描线
{
for(int i=0;i<640;i++) //x方向,从左到右找border点
{
c=getpixel(i,j); //得到该点颜色
if(c==body_color && flag==0) //是边框色
{ //是第一次遇到
p = i;
flag = 1;
}
else if(c==body_color && flag==1) //是边框色
{ //是第二次遇到
flag = 2;
line(p,j,i,j);
}
}
flag = 0; //清0,以方便下一轮再来
}
} 展开
1个回答
2015-06-27 · 知道合伙人互联网行家
关注
展开全部
如果你使用非固定管线的opengl版本可以直接在你的“片段着色器”(fragment shader)里控制,想怎么填冲怎么填充极为自由,当然要使用GLSL哦!
例如单一颜色:
varying lowp vec4 DestinationColor;//这是顶点着色器传过来的值
void mian (void)
{
gl_FragColor = DestinationColor;//这样就填充了单一的颜色不做改变相当于glShaderModel(GL_FLAT),当然也可以让根据你的要求来改变,例如顶点位置神马的...
}
例如单一颜色:
varying lowp vec4 DestinationColor;//这是顶点着色器传过来的值
void mian (void)
{
gl_FragColor = DestinationColor;//这样就填充了单一的颜色不做改变相当于glShaderModel(GL_FLAT),当然也可以让根据你的要求来改变,例如顶点位置神马的...
}
追问
我们必须用上面的方法的,能帮我看看那代码有什么错误吗??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询