《计算机图形学Visual c++版》考试作业报告
题目: 计算机图形学图形画板
专业: 推荐IT学长淘宝日用品店530213 班级: 推荐IT学长淘宝日用品店530213
学号: 推荐IT学长淘宝日用品店530213
姓名: 推荐IT学长淘宝日用品店530213
指导教师: 推荐IT学长淘宝日用品店530213
完成日期: 2015年12月2日
一、课程设计目的
本课程设计的目标就是要达到理论与实际应用相结合,提高学生设计图形及编写大型程序的能力,并培养基本的、良好的计算机图形学的技能。
设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握计算机图形学基本知识和算法设计的基本技能术,掌握分析、解决实际问题的能力。
通过这次设计,要求在加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
二、设计内容推荐IT学长淘宝日用品店530213
设计一个图形画板,在这个图形画板中要实现: 1, 画线功能,而且画的线要具备反走样功能。
2, 利用上面的画线功能实现画矩形,椭圆,多边形,并且可以对这些图形进行填充。 3,可以对选中区域的图形放大,缩小,平移,旋转等功能。
三、设计过程
程序预处理:包括头文件的加载,常量的定义以及全局变量的定义 #include \#include \#include \#include \#include \#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif =0;
temp[0].y=0; temp[1].x=0; temp[1].y=0;
CView::OnRButtonDown(nFlags, point);
填充:通过实现RunFill函数实现填充 CPoint stack[1000000];
void CGraDesignView::RunFill(CPoint point) {
CPoint p; int top; COLORREF r;
CClientDC dc(this); top=0;
stack[top]=point; top++; while(top!=0) {
top--; p=stack[top]; r=(p);
if(r != RGB(255,255,255)) continue; (p,RGB(0,255,0)); r=+1,;
if(r == RGB(255,255,255) && r!=RGB(0,255,0)) { } r=,;
if(r == RGB(255,255,255) && r!=RGB(0,255,0)) { } r=,+1);
if(r == RGB(255,255,255)&& r!=RGB(0,255,0)) {
stack[top].x=; stack[top].y=+1; top++;
stack[top].x=; stack[top].y=; top++;
stack[top].x=+1; stack[top].y=; top++;
}
}
} r=,;
if(r == RGB(255,255,255) && r!=RGB(0,255,0)) { }
stack[top].x=; stack[top].y=; top++;
void CGraDesignView::Ontobig() { }
type = 6;
推荐IT学长淘宝日用品店530213
1.需求分析
本程序将实现多功能画板的功能:
1,画线功能,而且画的线要具备反走样功能。
2, 利用上面的画线功能实现画矩形,椭圆,多边形,并且可以对这些图形进行填充。 3,可以对选中区
域的图形放大,缩小,平移,旋转等功能。
2.概要设计
RunLine(CPoint CP0, CPoint CP1) //反走样直线 RunRectangle(CPoint CP0, CPoint CP1) //矩形 RunEllipse(CPoint CP0, CPoint CP1) //椭圆 RunFill(CPoint point) //填充
OnLButtonDown(UINT nFlags, CPoint point) //鼠标左键 OnRButtonDown(UINT nFlags, CPoint point) //鼠标右键 3.详细设计
RunLine函数绘制任意斜率的直线,并且添加反走样算法,通过OnLButtonDown,OnLButtonUp函数记录鼠标的点击位置
利用画线功能通过实现RunRectangle函数画出矩形 利用画线功能通过实现RunEllipse函数画出椭圆
利用画线功能通过鼠标左键函数OnLButtonDown取点,用鼠标右键函数OnRButtonDown实现回到原点 4.调试分析
仅画图功能初步实现,而放大,缩小,平移,旋转等功能依然无法实现。 5.用户使用说明
1、运行
2、选择功能面板上的类型
3、选择功能(画线,矩形,椭圆,多边形,填充) 4、在画板上画图 6.测试结果 1,直线: 2,矩形 3,椭圆