资源简介

课程设计中的小型绘图系统,可以实现画圆,画线,移动简单功能,绝对有用

资源截图

代码片段和文件信息

// renxiaoming.cpp : Defines the entry point for the console application.
//

// renxiaoming.cpp : Defines the entry point for the console application.
//



#include “stdafx.h“
#include
#include
#include
#include
//#include
#include
int x0y0;
int x2y2;
int a0b0a1b1abcdef;
int width;
int height=500;
int first=500;
bool have_square=false;
bool edit=falsebm=false;
bool Line=falseCircle=false;
int r;
 //对称得到整个圆
void display(void);
void CirPot(int x0int y0int xint y)
 {
    glBegin(GL_POINTS);
    glVertex2f(x0+xy0+y);
    glVertex2f(x0+xy0-y);
    glVertex2f(x0-xy0+y);
    glVertex2f(x0-xy0-y);
    glVertex2f(x0+yy0+x);
    glVertex2f(x0+yy0-x);
    glVertex2f(x0-yy0+x);
    glVertex2f(x0-yy0-x);
glEnd();
}
//Bresenham法画圆
void Bresenham_Circle(int x0int y0int radius)
  {     int xyd;
        x=0;  y=int(radius);    d=(int)3-2*radius;
   while (x<=y)
    {
         CirPot(x0y0xy);
         if (d<0)     d+=4*x+6;
         else
          {
             d+=4*(x-y)+10;     y--;
           }
            x++;
      }
}  
bool sl(int x0int y0int xint y)
{
if((x>(x0-10))&&(x<(x0+10))&&(y>(y0-10))&&(y<(y0+10)))
return true;
else return false;
}
void mouse(int buttonint state int xint y)  //定义鼠标功能
{
   if(Line)
{
if(button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
{
   bm=sl(efxheight-y);}
 glEnable(GL_LOGIC_OP);
 if(edit&&bm)
{
 if(button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
  {
  a1=a0 = x;
   b1=b0 = height-y;
   glColor3f(0.01.00.0);
   glLogicOp(GL_XOR);
   first = 0;
  }
  if(button == GLUT_LEFT_BUTTON && state == GLUT_UP)
  {
  glutPostRedisplay();
   glFlush();
   glColor3f(1.01.01.0);
   glLogicOp(GL_COPY);
   glBegin(GL_LINES);
   glVertex2f(x0y0);
   glVertex2f(x2y2);
   e=e+a1-a0;f=f+b1-b0;
   glEnd();
   glFlush();
   bm=false;
  } 
 }
 else{
 if(have_square == false)
 {
  if(button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
  {
  x2=x0 = x;
   y2=y0 = height-y;
   glColor3f(0.01.00.0);
   glLogicOp(GL_XOR);
   first = 0;
  }
  if(button == GLUT_LEFT_BUTTON && state == GLUT_UP)
  {
   glBegin(GL_LINES);
   glVertex2f(x0y0);
   glVertex2f(x2y2);
   glEnd();
   glFlush(); 
   x2 = x;
   y2 = height-y;
   glFlush();
   glColor3f(0.00.01.0);
   glLogicOp(GL_COPY);
   glBegin(GL_LINES);
   glVertex2f(x0y0);
  
   glVertex2f(x2y2);
    e=(x2+x0)/2;f=(y2+y0)/2;
   glEnd();
   glFlush();
   have_square=true;
  } 
 }
 //else if(button == GLUT_RIGHT_BUTTON && state == GLUT_UP)
 //{
  //edit=true;
  //glutPostRedisplay();
  //first=0;}
 }
}
if(Circle)
{
if(button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
{
   bm=sl(efxheight-y);}
 glEnable(GL_LOGIC_OP);
 if(edit&&bm){
 if(button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
  {
  a1=a0 = x;
   b1=b0 = height-y;
   glColor3f(0.01.00.0);

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

     文件     164352  2009-06-23 13:53  计060217-任小明-25\25.小型绘图系统.doc

     文件      33792  2009-06-22 12:25  计060217-任小明-25\设计程序\renxiaoming.ncb

     文件        540  2009-06-22 12:21  计060217-任小明-25\设计程序\renxiaoming.dsw

     文件      48640  2009-06-22 12:25  计060217-任小明-25\设计程序\renxiaoming.opt

     文件        667  2009-06-22 12:21  计060217-任小明-25\设计程序\renxiaoming\StdAfx.h

     文件        298  2009-06-22 12:21  计060217-任小明-25\设计程序\renxiaoming\StdAfx.cpp

     文件       1238  2009-06-22 12:21  计060217-任小明-25\设计程序\renxiaoming\ReadMe.txt

     文件        771  2009-06-22 12:28  计060217-任小明-25\设计程序\renxiaoming\renxiaoming.plg

     文件       8234  2009-06-22 12:28  计060217-任小明-25\设计程序\renxiaoming\renxiaoming.cpp

     文件       3461  2009-06-22 12:28  计060217-任小明-25\设计程序\renxiaoming\renxiaoming.dsp

     文件      33792  2009-06-22 12:28  计060217-任小明-25\设计程序\renxiaoming\renxiaoming.ncb

     文件      48640  2009-06-22 12:28  计060217-任小明-25\设计程序\renxiaoming\renxiaoming.opt

     文件        530  2009-06-22 12:28  计060217-任小明-25\设计程序\renxiaoming\renxiaoming.dsw

     文件     197632  2009-06-22 12:28  计060217-任小明-25\设计程序\renxiaoming\Debug\vc60.idb

     文件     290816  2009-06-22 12:28  计060217-任小明-25\设计程序\renxiaoming\Debug\vc60.pdb

     文件       1819  2009-06-22 12:23  计060217-任小明-25\设计程序\renxiaoming\Debug\StdAfx.obj

     文件     270472  2009-06-22 12:28  计060217-任小明-25\设计程序\renxiaoming\Debug\renxiaoming.exe

     文件     599040  2009-06-22 12:28  计060217-任小明-25\设计程序\renxiaoming\Debug\renxiaoming.pdb

     文件      42575  2009-06-22 12:28  计060217-任小明-25\设计程序\renxiaoming\Debug\renxiaoming.obj

     文件     401416  2009-06-22 12:28  计060217-任小明-25\设计程序\renxiaoming\Debug\renxiaoming.ilk

     目录          0  2009-06-23 14:30  计060217-任小明-25\设计程序\renxiaoming\Debug

     目录          0  2009-06-23 14:30  计060217-任小明-25\设计程序\renxiaoming

     目录          0  2009-06-23 14:30  计060217-任小明-25\设计程序

     目录          0  2009-06-23 14:30  计060217-任小明-25

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

              2148725                    24


评论

共有 条评论