资源简介

opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习

资源截图

代码片段和文件信息

#include 
#include 
   GLsizei winWidth = 800 winHeight = 600; // 窗口的大小
   GLfloat red = 1.0 green = 0.0 blue = 0.0; //颜色
   GLenum fillMode = GL_SMOOTH; 
   bool LineCircleRectanger;
   int xstartystartxendyend;//鼠标的坐标
   float r;//圆的半径
   int NUM=200;// 定义绘制圆时用的顶点数(用顶点组成的线段逼近圆)(new)
   

void fillOption(GLint s){
//glutPostRedisplay();
}

void graphics(GLint selectedOption)
{
   switch (selectedOption) {
           case 1:Line=trueCircle=falseRectanger=false; break;
           case 2:Line=falseCircle=trueRectanger=false; break;
           case 3:Line=falseCircle=falseRectanger=true; break;         
    }
  //  glutPostRedisplay ( );
}

void colorselection(GLint selectedOption)
{
   switch (selectedOption) {
           case 1:red = 1.0 green = 0.0 blue = 0.0; break;
           case 2:red = 0.0 green = 1.0 blue = 0.0; break;
           case 3:red = 0.0 green = 0.0 blue = 1.0; break;         
    }
   // glutPostRedisplay ( );
}

void mousemove(int xmoveint ymove)
{

if(Line){
glEnable(GL_COLOR_LOGIC_OP);
        glLogicOp(GL_XOR);

        glBegin(GL_LINES);
           glVertex2i(xstartystart);
           glVertex2i(xendyend);
        glEnd();

        xend=xmove;
        yend=winHeight-ymove;

        glBegin(GL_LINES);
          glVertex2i(xstartystart);
          glVertex2i(xendyend);
        glEnd();

        glFlush();
}

else if(Rectanger){
         glEnable(GL_COLOR_LOGIC_OP);//启动逻辑异或
         glLogicOp(GL_XOR);

         glBegin(GL_LINE_LOOP);
    glVertex2i(xstartystart);
glVertex2i(xstartyend);
glVertex2i(xendyend);
glVertex2i(xendystart);
//glVertex2i(xstartystart);
 glEnd();

         xend=xmove;
         yend=winHeight-ymove;

        glBegin(GL_LINE_LOOP);
         glVertex2i(xstartystart);
     glVertex2i(xstartyend);
     glVertex2i(xendyend);
     glVertex2i(xendystart);
// glVertex2i(xstartystart);
 glEnd();

         glFlush();
}
else if(Circle){
 glEnable(GL_COLOR_LOGIC_OP);//启动逻辑异或
         glLogicOp(GL_XOR);
 r=sqrt((xstart-xend)*(xstart-xend)+(ystart-yend)*(ystart-yend)*1.0)/2;   //计算圆的半径
        
glBegin(GL_LINE_LOOP);   // 绘制圆(new)
for(int i=0; i {
glVertex2f((xstart+xend)/2+r*float(sin(2*3.14*i/NUM))(ystart+yend)/2+ r*float(cos(2*3.14*i/NUM)));
}
    glEnd();                                                     // 圆绘制结束

xend=xmove;
        yend=winHeight-ymove;
        r=sqrt((xstart-xend)*(xstart-xend)+(ystart-yend)*(ystart-yend)*1.0)/2;   //计算圆的半径

glBegin(GL_LINE_LOOP);   // 绘制圆(new)
for(int i=0; i {
glVertex2f((xstart+xend)/2+r*float(sin(2*3.14*i/NUM))(ystart+yend)/2+ r*float(cos(2*3.14*i/NUM)));
}
    glEnd();                                        // 圆绘制结束

glFlush();
}
}

void mouseud (int btnint stateint xint y)
{
if(Line){
if

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      37376  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\Debug\interGraphics.exe

     文件     350084  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\Debug\interGraphics.ilk

     文件     420864  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\Debug\interGraphics.pdb

     文件      10910  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics\Debug\BuildLog.htm

     文件      24964  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics\Debug\Graphics.obj

     文件        663  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics\Debug\interGraphics.exe.embed.manifest

     文件        728  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics\Debug\interGraphics.exe.embed.manifest.res

     文件        621  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics\Debug\interGraphics.exe.intermediate.manifest

     文件         67  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics\Debug\mt.dep

     文件      44032  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics\Debug\vc90.idb

     文件      53248  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics\Debug\vc90.pdb

     文件       7686  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics\Graphics.cpp

     文件       3932  2009-10-26 18:03  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics\interGraphics.vcproj

     文件       1427  2009-10-27 20:19  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics\interGraphics.vcproj.HP-B23A3C94F490.hp.user

     文件     732160  2009-10-27 20:19  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics.ncb

     文件        905  2009-10-26 18:02  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics.sln

    ..A..H.     13312  2009-10-27 20:19  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics.suo

     目录          0  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics\Debug

     目录          0  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\Debug

     目录          0  2009-10-27 19:44  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics\interGraphics

     目录          0  2009-10-26 18:03  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习\interGraphics

     目录          0  2018-11-30 05:27  opengl的鼠标画线,圆,矩形,还有个菜单,很适合opengl初学者学习

----------- ---------  ---------- -----  ----

              1702979                    22


评论

共有 条评论