资源简介
课程设计中的小型绘图系统,可以实现画圆,画线,移动简单功能,绝对有用
代码片段和文件信息
// 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
相关资源
- 峰值检测系统课程设计
- 关于8086系统的微机出租车计价器课程
- 汇编课程设计——用汇编语言进行十
- 数据结构课程设计 表达式计算
- 人事管理系统数据库课程设计
- 数据库工资管理系统课程设计
- 汽车租赁系统UML课程设计报告
- 工资管理系统课程设计
- 微机原理/汇编语言 多功能信号/波形
- 基于51单片机的数字频率计课程设计
- 计算机网络文件传输及管理系统课程
- 数字电子时钟课程设计报告附设计电
- 一位十进制加减法器--数字逻辑设计及
- 密码学课程设计:仿射加密解密算法
- eda 课程设计 彩灯控制器
- 微机原理课程设计报告-数字时钟的实
- 数据结构课程设计学生信息管理系统
- 数据结构课程设计抽签游戏
- 语音压缩与回放
- 汇编写的电子琴 微机原理课程设计
- 汽车尾灯课程设计报告
- 数据库课程设计新华书店图书销售系
- 密码学课程设计 一个简易的数字签名
- WINDOWS聊天课程设计报告
- 组成原理课程设计完整版
- 课程设计:调幅发射与接收系统
- 计算机组装与维护课程设计
- 数据库系统课程设计——银行管理系
- Linux课程设计—基于服务器的文件共享
- EDA课程设计交通灯
评论
共有 条评论