資源簡介
課程設計中的小型繪圖系統,可以實現畫圓,畫線,移動簡單功能,絕對有用

代碼片段和文件信息
//?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
- 上一篇:3D_虛擬試衣間的設計與實現
- 下一篇:施密特網.dwg
評論
共有 條評論