19,468
社区成员
发帖
与我相关
我的任务
分享
int CSubject::glDraw3D()
{
glColor3d(1.0f,1.0f,1.0f);
if(m_pDev)//画直线,使平滑,加入了混合
{
glEnable(GL_LINE_SMOOTH);//只有这两句的时候,感觉锯齿还是很明显
glHint(GL_LINE_SMOOTH_HINT,GL_NICEST);
glLineWidth(3.0f);
glEnable(GL_BLEND);//加了这两句后,变成了虚线
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBegin(GL_LINE_STRIP);
for(int i=0;i<m_pDev->GetCount();i++)
{
Vertex3d(m_pDev->GetX(i),m_pDev->GetY(i),m_pDev->GetZ(i));
}
glEnd();
DrawText(m_pDev->GetX(0),m_pDev->GetY(0),m_pDev->GetZ(0));
}
else//画点,只是平滑
{
glPointSize(3.0f);
glHint(GL_POINT_SMOOTH_HINT,GL_NICEST);
glEnable(GL_POINT_SMOOTH);
glBegin(GL_POINTS);//
Vertex3d(m_headX,m_headY,-2000.0f);
glEnd();
DrawText(m_headX,m_headY,-2000.0f);
}
//画一个矩形
glColor3d(1.0f,0.0f,0.0f);
glBegin(GL_LINE_LOOP);
Vertex3d(m_LogicWinShare3D.stPt.x,m_LogicWinShare3D.stPt.y,m_LogicWinShare3D.stPt.z);
Vertex3d(m_LogicWinShare3D.stPt.x + m_LogicWinShare3D.xSpan,m_LogicWinShare3D.stPt.y,m_LogicWinShare3D.stPt.z);
Vertex3d(m_LogicWinShare3D.stPt.x + m_LogicWinShare3D.xSpan,m_LogicWinShare3D.stPt.y +m_LogicWinShare3D.ySpan,m_LogicWinShare3D.stPt.z);
Vertex3d(m_LogicWinShare3D.stPt.x,m_LogicWinShare3D.stPt.y +m_LogicWinShare3D.ySpan,m_LogicWinShare3D.stPt.z);
glEnd();
glFlush();
return 0;
}