opengl在MFC画多边形//进行了坐标转化怎么还是不显示?

mirroatl217 2014-02-28 08:49:20

glColor3f(0.5,0.5,1.0);//设置绘制物体用颜色(蓝色)
glLineWidth(1.5);
glBegin(GL_POLYGON);// GL_POLYGON制定绘制的是多边形
//指定要绘制的物体(此处为包含4个顶点的多边形
glVertex3f(30.25- m_wWidth/2,-30.25 + m_wHeight/2,0.0);//指定顶点,X=0.25 Y=0.25 Z=0.0

glVertex3f(50.75- m_wWidth/2,-50.25 + m_wHeight/2,0.0);

glVertex3f(100.75- m_wWidth/2,-100.75 + m_wHeight/2,0.0);

glVertex3f(150.25- m_wWidth/2,-150.75 + m_wHeight/2,0.0);
glEnd();
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mirroatl187 2014-02-28
  • 打赏
  • 举报
回复
。。。。。。。 上面容器里的坐标就能画出来呀 也是- m_wWidth/2, + m_wHeight/2,
引用 3 楼 banshichiqinglangzi 的回复:
坐标有问题?
从来不作 2014-02-28
  • 打赏
  • 举报
回复
坐标有问题?
mirroatl217 2014-02-28
  • 打赏
  • 举报
回复
放在Onpaint函数里了,但是,从容器获取点绘制的线可以显示的。。。。但是多边形不显示。。。

void Cgltest_feb4Dlg::OnPaint()
{
	CPaintDC dc(this); // device context for painting
		//CDialogEx::OnPaint();
	glClearColor(1,1,1,1.0);//背景颜色设置
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
		//使深度缓存测试有效
	glEnable(GL_DEPTH_TEST);
		//取景变换
	glLoadIdentity();
		//gluLookAt(0,0,100,0,0,0,0,1,0);
		//glRotatef(90,1,1,0);
		//设置前景色
	glColor3f(0,1,0);
	//开始绘图
	glLineWidth(1.5);
	glBegin(GL_LINES);
	vector <LFPoint>::iterator iter;
	for(iter = bspoints.begin(); iter != bspoints.end() - 1; iter+=1)
	{
		glVertex3f((GLfloat)iter->x,(GLfloat)iter->y,(GLfloat)0.0);
		glVertex3f((GLfloat)(iter+1)->x,(GLfloat)(iter+1)->y,(GLfloat)0.0);
	}
	glEnd();
	//glLoadIdentity();   
 //   glTranslatef(-5.0f,-1.0f,-30.0f);   
 //   glRotatef(2.8f,1.0f,1.2f,0.0f);//表示沿向量(1,0,0)旋转15度
 //   glScaled(5.0f,5.0f,5.0f);//沿X,Y,Z放大4倍
 //       glPushMatrix();
 //   glBegin(GL_QUAD_STRIP);
 //   for(int j=0;j<363;j++)
 //   {   
 //       float  k;
 //       k=2/(j+2);
 //       glColor3f(1.0f,k+1,2.5f);
 //       glVertex3f(0.5*cosf(j*3.1416/180),0.5, 0.5*sinf(j*3.1416/180)  );       
 //       glColor3f(0.5f,0.0f,k);
 //       glVertex3f(0.5*cosf(j*3.1416/180),-0.1, 0.5*sinf(j*3.1416/180)  );
 //   }
 //   glEnd();
	/*cp.x = 1 - m_wWidth/2;
	cp.y = - 100 + m_wHeight/2;*/
	//glLoadIdentity(); 
	glColor3f(0.5,0.5,1.0);//设置绘制物体用颜色(蓝色)
	glLineWidth(1.5);
    glBegin(GL_POLYGON);// GL_POLYGON制定绘制的是多边形
    //指定要绘制的物体(此处为包含4个顶点的多边形
    glVertex3f(30.25- m_wWidth/2,-30.25 + m_wHeight/2,0.0);//指定顶点,X=0.25 Y=0.25 Z=0.0

    glVertex3f(50.75- m_wWidth/2,-50.25 + m_wHeight/2,0.0);

    glVertex3f(100.75- m_wWidth/2,-100.75 + m_wHeight/2,0.0);

    glVertex3f(150.25- m_wWidth/2,-150.75 + m_wHeight/2,0.0);
    glEnd();

	SwapBuffers(m_hDC);
}


引用 1 楼 banshichiqinglangzi 的回复:
没放在画图函数里,或者没有swapbuffer
从来不作 2014-02-28
  • 打赏
  • 举报
回复
没放在画图函数里,或者没有swapbuffer

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧