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

代码片段和文件信息
// 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
相关资源
- FTP课程设计(服务端+客户端)
- 高频电子线路课程设计报告收音机
- 直流稳压电源的课程设计、安装及调
- EDA课程设计_密码锁
- 单片机课程设计 篮球计分器
- 数据结构课程设计 6 1 彩票系统
- 端口扫描课程设计详细的报告
- 步进电机课程设计(个人设计)
- 校园网络规划与设计课程设计
- 编译原理课程设计:词法语法编译器
-
simuli
nk 课程设计 qpsk - 武汉理工大学 单片机课程设计 16*16点
- 数据库VFP课程设计
- 分页系统模拟实验 操作系统 课程设
- 模拟段页式虚拟存储管理中地址转换
- 硬件课程设计—流水灯(quartus软件
- 超市收银系统eclipse access大学课程设计
- 航空订票系统_数据结构课程设计
- c 课程设计 职工信息管理系统
- 汇编语言,课程设计,红绿灯
- 机床液压系统课程设计卧式钻床动力
- 课程设计蔬菜大棚自动控制系统,包
- 密码学课程设计:DES加密解密算法的
- 操作系统课程设计完整版
- 磁盘调度算法的模拟实现及对比
- PL/0功能扩充break功能
- 数据库课程设计以及指导思想
- ATM自动取款机系统的分析与设计
- 留言板课程设计 报告加设计
- 数据结构课程设计——图书管理系统
评论
共有 条评论