当前位置:文档之家› 简易绘图程序 使用API和MFC

简易绘图程序 使用API和MFC

简易绘图程序 使用API和MFC
简易绘图程序 使用API和MFC

XXX大学

程序设计实践报告

课题名称:程序设计实践

学生姓名:XXXXXxxxxx

班级:2012XXXXX

班内序号:XXX

学号:XXxx21XXX

日期:2014年5月

1.课题概述

1.1课题目标和主要内容

本课题了实现一个基于API和MFC的简易绘图软件。此简易绘图软件,满足用户进

行绘图时的基本需求,主要功能包括绘制会动的时钟,绘制三角形(API实现),绘制线条(MFC实现)。应具有良好的界面、必要的交互信息和简易的菜单进行操作。在程序的设计与实现中,系统开发平台为Windows7,主要工具为Visual Studio 2012。

1.2系统的主要功能

主要功能与说明:

DROW1(API):

1)会动的时钟的绘制:

模拟一个真实的表盘,绘制图形,显示实际的时间。

2)绘制简单的三角形;

MFC:

1)图形的绘制:

a)线形绘图函数:

Lineto:绘制直线

Polyline:绘制折线

Arc:绘制圆弧线

Polybezir:绘制弯曲线

b)区域绘图函数

Rectant:绘制矩形

Roundrect:绘制圆边矩形

Ellips:绘制椭圆

Pie:绘制扇形

2)自由绘图:拖动鼠标可以自由绘制曲线,可以通过一个对话框选择所需线形线

宽等。

3)清空功能:

1)全部清空:可以清空整个屏幕内容。

2. 系统设计

2.1 系统总体框架

API:

MFC:

2.2 系统详细设计

2.2.1 模块划分图及描述

a) 绘图函数模块:通过各种系统自带的绘图函数,直接调用绘图。设置他们的位置,并添加到菜单项,使点击菜单项则可出现相应图形。

Lineto:绘制直线 Polyline:绘制折线 Arc:绘制圆弧线 Polybezir:绘制弯曲线 Rectant:绘制矩形 Roundrect:绘制圆边矩形 Ellips:绘制椭圆

Pie :绘制扇形

b) 自由绘图模块:按下鼠标左键,初始化起始位置,在选定自由绘图模式的情况下,拖动鼠标的同时,获取鼠标当前位置为终点位置,调用MoveTo 和LineTo 函数连接两点。连线完成后,将上一条直线的终点作为下一次连线的起始位置。反复进行该操作,直到鼠标左键不再处于按下状态。当连线的频率足够快时,所画出的图形能近似于曲线,就能实现自由绘图。

更改画笔线宽、线形:设置一个对话框,分别定义两个成员变量储存用户选择的现款和线形,再用一个整形变量,在每次绘图前,声明一个CPen 类型的画笔对象,并用储存的颜色和线宽对该对象进行初始化,随后把该画笔选入设备描述表中。

c) 窗口图形模块:通过在资源视图中设置菜单栏,将菜单栏设置成绘图函数、设置、清空(等板块;并默认为自由线画图,分别定关联函数和变量来记录做出的选择。 2.2.2 类关系图及描述

本程序主要在视图类中进行操作,原有类主要是CDrawView类有更改,其他类都由系

2.2.3程序流程图及描述

2.3 关键算法分析

API:

函数一://窗口函数

LRESULT CALLBACK WndProc(HWND hwnd, UINT message,

WPARAM wParam, LPARAM lParam)

{

static int menuId=0;//静态变量

int wmId, wmEvent;

HDC hdc;

PAINTSTRUCT ps;

switch(message)

{

case WM_CREATE: SetTimer(hwnd,1,1000,NULL); break;

case WM_TIMER: InvalidateRect(hwnd,NULL,TRUE); break;

case WM_COMMAND://处理菜单消息

wmId = LOWORD(wParam);

wmEvent = HIWORD(wParam);

switch (wmId)

{

case IDM_FIG1:

menuId=IDM_FIG1;

InvalidateRect(hwnd,NULL,TRUE); break;

//实现会动的时钟

case IDM_FIG2:

menuId=IDM_FIG2;

InvalidateRect(hwnd,NULL,TRUE); break;

//实现三角形的绘制

case IDM_EXIT:DestroyWindow(hwnd); break;

//实现退出程序功能

}

break;

case WM_PAINT:

hdc = BeginPaint(hwnd, &ps);

if (menuId){

cwin.open(hwnd, hdc);

switch(menuId){

case IDM_FIG1:mclock(); break;

case IDM_FIG2: DrawTriangle(hwnd,hdc);break; // 其它绘图程序

break;

}

}

EndPaint(hwnd, &ps);

break;

case WM_DESTROY:

KillTimer(hwnd,1);//销毁计时器

PostQuitMessage(0);

default: //缺省时采用系统消息缺省处理函数

return DefWindowProc(hwnd,message,wParam,lParam);

}

return(0);

}

函数二:会动的时钟

void mclock()

{ Shape *pShape;

cwin<

/* 画表盘*/

int radius=6;

Point org(0,0);

pShape=&org;

pShape->SetColor(RGB(255,255,255)); // 白色,设置表芯点的颜色

cwin<

Circle clkPlate(org,radius);

pShape=&clkPlate;

pShape->SetColor(RGB(0,255,255)); // 蓝色,设置表盘圆周颜色c5 cwin<

double x,y,x_s,y_s,x_m,y_m,x_h,y_h;

int i;

for(i=0;i<12;i++)//设置个整点的圆点

{

x=0.9*radius*sin(PI*i/6);

y=0.9*radius*cos(PI*i/6);

Point mPoint(x,y);

pShape=&mPoint;

pShape->SetColor((RGB(255,255,255)));

cwin<

}

struct tm local;

time_t t;

// 获取系统日历时间

t=time(NULL);

// 将日历时间转化为本地时间

localtime_s(&local,&t);

x_s=0.89*radius*sin(PI*(local.tm_sec)/30); //秒针

y_s=0.89*radius*cos(PI*(local.tm_sec)/30);

x_m=0.7*radius*sin(PI*(local.tm_min)/30); //分针

y_m=0.7*radius*cos(PI*(local.tm_min)/30);

x_h=0.5*radius*sin(PI*(local.tm_hour)/6); //时针

y_h=0.5*radius*cos(PI*(local.tm_hour)/6);

/* 画表针*/

Point hEnd(x_h,y_h),mEnd(x_m,y_m),sEnd(x_s,y_s);

Line hLine(org,hEnd),mLine(org,mEnd),sLine(org,sEnd);

hLine.SetColor((RGB(255,0,0))); // 红色

mLine.SetColor((RGB(0,255,0))); // 绿色

sLine.SetColor((RGB(255,255,0))); // 黄色

cwin<

}

函数三:画三角形

void DrawTriangle(HWND hwnd,HDC hdc)

{ // 获得客户区域

RECT r;

GetClientRect(hwnd, &r);

// 设置映像模式

SetMapMode (hdc, MM_ISOTROPIC);

// 设置窗口坐标范围

SetWindowExtEx(hdc, 100, 100, NULL);

// 设置视口坐标范围

SetViewportExtEx(hdc, r.right, r.bottom, NULL);

// 绘制三角形

Point p[]={Point(10,10),Point(10,19),Point(22,19)};

MoveToEx( hdc, p[0].get_x(), p[0].get_y(), NULL);

for( int i=0; i<3; i++)

{ if( i==2)

{LineTo( hdc, p[0].get_x(), p[0].get_y() );

continue;

}

LineTo( hdc, p[i+1].get_x(), p[i+1].get_y());

}

}

MFC:

函数一:画直线

void CMYdrawView::OnDrawLineto()

{

// TODO: 在此添加命令处理程序代码

CClientDC dc(this);

dc.MoveTo(300, 300);

dc.LineTo(400, 400);

}

函数二:画矩形

void CMYdrawView::OnDrawRectangle()

{

// TODO: 在此添加命令处理程序代码

CClientDC dc(this);

dc.Rectangle(450, 100, 650, 250);

}

函数三:画椭圆

void CMYdrawView::OnDrawEllipse()

{

// TODO: 在此添加命令处理程序代码

CClientDC dc(this);

dc.Ellipse(450, 400, 650, 500);

}

函数四:OnLButtonDown(UINT nFlags, CPoint point)

void CMYdrawView::OnLButtonDown(UINT nFlags, CPoint point) {

// TODO: 在此添加消息处理程序代码和/或调用默认值

CView::OnLButtonDown(nFlags, point);

SetCapture();

::SetCursor(m_hCross);

m_ptOrigin = point;

m_bDragging = true;

}

函数五:OnLButtonUp(UINT nFlags, CPoint point)

void CMYdrawView::OnLButtonUp(UINT nFlags, CPoint point) {

// TODO: 在此添加消息处理程序代码和/或调用默认值

//CView::OnLButtonUp(nFlags, point);

if (m_bDragging)

{

m_bDragging = false;

ReleaseCapture();

}

函数六:OnMouseMove(UINT nFlags, CPoint point)

void CMYdrawView::OnMouseMove(UINT nFlags, CPoint point) {

// TODO: 在此添加消息处理程序代码和/或调用默认值

CView::OnMouseMove(nFlags, point);

if (m_bDragging)

{

CMYdrawDoc* pDoc = GetDocument();

ASSERT_V ALID(pDoc);

pDoc->AddLine(m_ptOrigin, point);//加入线段到指针数组

CClientDC dc(this);

CPen pen(m_nLineStyle, m_nLineWidth, RGB(0, 0, 0));

dc.SelectObject(&pen);

dc.MoveTo(m_ptOrigin);

dc.LineTo(point);

m_ptOrigin = point;

}

}

函数七:清空函数

void CMYdrawView::OnDrawInvalidate()

{

// TODO: 在此添加命令处理程序代码

this->Invalidate();

}

函数八:设置对话框

CSettingDlg::CSettingDlg(CWnd* pParent /*=NULL*/)

: CDialogEx(CSettingDlg::IDD, pParent)

, m_nLineWidth(0)

, m_nLineStyle(0)

{

}

3.程序运行结果分析

API:

图一:会动的时钟

图二三角形绘制

图三菜单

MFC:

图四:绘图函数展示

图五:自由线画图展示

图五:设置功能

4.总结

4.1课题的难点和关键点

难点:课题的难点在于使用了对Windows的编程,使用到了大量的类,使用了全新的工具MFC。VC是C++语言,是一种面向对象的编程语言。他于基础语言不同点在于,基础语言是一条路走到底的(中断技术除外),而面向对象是等待你的指令才往下走,是被动的编程语言。

关键点:vc++是Windows平台上的C++编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大。Windows下编程需要了解Windows

的消息机制以及回调(callback)函数的原理;MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;COM是代码共享的二进制标准,需要掌握其基本原理等等。

4.2本课题的评价

本课题很有意思,初次接触式充满了意思。设计以及编写时需要查大量的资料,丰富了

我们的知识;编写时极容易遇到困难,增加了我们的耐心;最关键的还是学到了很多有用的

关于VC的方法技巧。便于我们在今后的学习中将MFC作为一种基本而优良的工具。

4.3心得体会

对于WINDOWS编程很游泳而且有意思,我们要好好学习,在以后的运用中才能熟能生巧。

3.参考文献

[1]《Visual C++6.0》 XXX

[2] 《基于MFC设计建议画图板》包头师范学校论文

mfc绘图程序上机步骤

首先生成MFC程序空框架 空框架中的每个类的职责是什么要自己理解清楚 第一次课: 1.定义自己的数据类CLine直线类,用于绘图 点击菜单:插入—类 选择Generic class,输入类名,每个类都是分成两个文件.h 中只有类体,包含类的数据成员定义和成员函数声明,.cpp中就是成员函数的类体外实现 classCLine { int x1,y1,x2,y2; public: CLine(int a=0,int b=0,int c=0,int d=0); virtual ~CLine(); int Getx1(); int Gety1(); int Getx2(); int Gety2(); void SetPoint1(intx,int y);很多函数是在后面使用中发现问题逐渐添加的 void SetPoint2(intx,int y); }; 2.自定义的类要作为数据成员出现在Doc类中 classCSmallCADDoc : public CDocument { protected: // create from serialization only CSmallCADDoc(); DECLARE_DYNCREATE(CSmallCADDoc) // Attributes public: CLine line1; //数据成员应该是私有,但是由于文档类与视图类交换频繁,为了访问方便,直接定义成公有了。你也可以定义成私有,再定义一个Get函数间接访问,取他的值3.注意:添加了这个数据成员后,需要增加几个#include “Line.h”语句 添加的原则是,每个cpp文件都单独编译,哪里用到新的类,相应的cpp前就要增加#include “。。。”语句 此处是在CSmallCADDoc类中添加了一个CLine line1;类对象,在SmallCADDoc.h文件中。所以,凡是包含了#include “SmallCADDoc.h”的地方都要在前面添加#include “Line.h” 语句。共3处:app doc view 这3个类的cpp文件前 4.注意:初始化 CLine line1; //数据成员是文档类的,它不像dos下程序,明确能看到定义,调用构造

mfc简单绘图程序

M F C 简 单 的 绘 图 程 序 ——王帅

目录 摘要 (2) 关键字 (2) 1 引言 (2) 设计目的 ............................................................................................................ 错误!未定义书签。 2 功能说明 (2) 2.1菜单栏....................................................................................................... 错误!未定义书签。 2.1.1图形 (3) 2.1.2画笔 (4) 2.1.3画硬币 (4) 2.2工具栏 (5) 2.3状态栏 (5) 3 功能的实现 (5) 3.1 视图设计 (5) 3.2 编辑资源 (6) 3.3 编程思路及各个函数的实现 (7) (1)思路 (7) (2)代码的实现 (7)

1.为基本形状创建一个基类 (8) 2.基本形状类的创建 (8) 2.1矩形类的创建及定义 (8) 2.2圆形类的创建及定义 (10) 2.3正五边形类的创建及定义 (11) 2.4正三角形类的创建及定义 (14) 2.5椭圆类的创建及定义 (16) 2.6正四边形类的创建及的定义 (17) 2.7正六边形类的创建及定义 (18) 2.8直线类的创建及定义 (19) 3.各基本形状类在CMyDraw2_0类中的调用和绘图的实现 (20) 3.1矩形类的调用与与绘图的实现 (20) 3.2圆形类的调用 (24) 3.3正三角形类的调用 (25) 3.4基本类型调用的剩余代码 (26) 4.画笔的使用、颜色及大小的调整 (29) 5.画硬币 (35) 6.工具栏中的自定义控件 (38) 7.状态栏中的显示 (39) 4程序功能的测试 (41) 5最后总结 (42)

C++课设:简单画图程序

简单画图程序 1.基本功能描述 本次课程设计的任务是利用计算机和VC开发环境编写一个简单画图程序,该程序的设计指标(即主要功能)有:①用鼠标拖动绘制圆、椭圆、矩形,线等基本图形;②能控制画笔的线宽和颜色;③能对图形进行颜色填充;④在鼠标移动的过程中能实时显示当前绘制的图形。 除了以上几点功能,我有另外添加了工具栏、铅笔、橡皮等功能来使程序更方便地让用户使用,简化了人机交互的过程。 2.设计思路 首先是界面的问题,既然课设的题目是简单画图,那在建立工程的时候就要选择文档结构而不是以前做的基于对话框。可选择单文档结构或多文档结构,但想到画图界面一般只有一个,从简洁的角度考虑,选择单文档结构。而且用户界面在设计的时候要尽可能简单美观,一目了然,对相应功能有图标提示,使用户方便使用。 然后便是画图功能的具体实现。分析课设要求,可以发现功能一要求的的椭圆、矩形、直线可以分别通过Ellipse();、Rectangle();、MoveTo();、LineTo();这四个函数来实现。功能二控制画笔线宽和颜色可以给二者分别关联参数,通过改变线宽参数值来控制线宽,通过调用通用对话框改变颜色参数值来控制颜色。功能三对图形进行颜色填充虽以前未接触过,但查阅资料后发现可以调用ExtFloodFill();并合理设定参数值来实现。功能四的实时显示功能可以通过调用MouseMove();函数来实现。 这些功能需要建立菜单资源来表示各个功能选项,并建立相应的消息响应函数来进行实现。另外,画图程序主要是通过鼠标来进行操作,所以要对鼠标消息的响应及处理函数多下功夫来思考和编写。 至于额外添加的功能,工具栏通过添加工具栏资源和关联相应菜单中画图功能ID实现;铅笔、橡皮的功能则是利用MouseMove();函数,在其中做了一些改动来实现。

简单的绘图程序实验报告

面向对象程序设计实训(基于MFC程序设计) 题目: 简单的绘图程序 院系专业: 姓名: 学号: 同组其他学生(学号):

简单绘图程序说明 1、功能分析 目前这个软件的主要功能有如下: 1、画直线:通过OnLine()函数实现。 2、画矩形:通过OnRectangle()函数实现。 3、画圆角矩形:通过OnRoundrect()函数实现。 4、画椭圆:通过OnEllipse()函数实现。 5、铅笔工具:可以画任意线条。通过直接在OnMouseMove(UINT nFlags, CPoint point)函数里面添加代码实现。 6、右键弹出菜单:可以在客户中点击鼠标右键,快速选择常用菜单。通过 OnContextMenu函数实现。 7、状态栏显示鼠标移动的坐标:在程序的右下角显示,通过调用setWidnowText 和GetParent()实现。 8、画图颜色选择:可以画任何颜色的线条,通过OnColor()函数实现。 9、线条类型及线宽的设置:可以将画出的线条设置成实线、虚线、点线、点划 线,双点划线,还可以设置线条的粗细,,通过实例这一功能立刻显示所选择线条的粗细及线型。通过新建CLineSettingDlg类,其中OnSelchangeLineStyle()函数实现线型的改变,OnChangeEditLineWidth()函数实现线宽的改变。再在CDrawView类中调用OnLineSetting()函数实现画笔的对话框, CLineSettingDlg类中的OnPaint()函数是实现示例功能的。 10、窗口的重绘时不擦除原来的内容:新建CShape类用来保存线条的颜色,线 宽,填充色等属性,在窗口大小发生变化时有OnDraw(CDC* pDC)函数进行重绘工作,重绘中调用了各个绘图函数的Draw(CDC *pDC)函数。 11、所绘图形的保存于读取,通过Serialize(CArchive &ar)函数进行序列化操作, 将所绘图形的信息通过文件的形式保存起来。

C++实验报告(MFC简单画图程序)

VC++程序设计实验报告 一、实验目的 掌握MFC编程 二、实验内容 用MFC向导创建单文档应用程序,一个简单的画图程序。 ?使用C++语言实现 ?使用VC++6.0集成开发环境开发 ?使用MFC应用程序开发框架 三、实验步骤 ?基本功能描述 1. 打开exe文件,在绘图下拉菜单中可分别设置绘制的图形形状,如直线、 曲线、矩形及椭圆,线宽选项,有1-6可供选择,线型选项有实线、虚线、点线和点段线供设置,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。 2. 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决 定图形的大小,当鼠标弹起,此图形则绘制完毕。 ?设计思路 1. 对需要用到的变量进行初始化。 2. 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。 3. 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4. 选择图形或其它属性,可进行下一次绘制。 ?软件设计 A 设计步骤 1.创建单文档 创建一个MFC AppWizard[exe]工程,命名为“Draw”,如图1所示,并创建单文档,如图2所示。创建成功后,系统自动生成相应的类,如图3所示。

图1 创建工程 图2 创建单文档

mfc简单绘图程序报告

简单绘图程序 1 需求说明 1.1 问题描述 设计一个简单的绘图应用程序,可以绘制图形或自由绘制线段,可以更改颜色、画笔粗细、保存文件。 1.2功能说明 1.图形绘制功能:直线、椭圆、矩形。 在菜单栏中选择需要的图形(也可以通过工具栏中选择)用鼠标便能在视图中绘出相应的图形。 2.可以绘制自由线段 3.对图形的操作:能通过菜单栏弹出对话框选择线宽、自定义颜色,也可以擦除绘制的线段。 4.可以保存绘图文件,保存后打开可以继续绘制。 2.1.3 数据说明 在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。在CDzyView类中添加一个私有变量xz;用来保存用户的选择(直线、矩形、椭圆、自由绘图)在绘制时都可有两点来确定其图形。当鼠标左击时得到一个点,当鼠标停止移动时得到另外一个点。为视图类CDzyView分别捕获鼠标左键按下和弹起这两个消息。当鼠标左键按下时,需要将鼠标当前按下点保存至sx、sy,在鼠标移动停止后,将当前坐标保存至ex,ey.

其他主要数据说明: int fd 判断是否为自由绘图模式int w 线宽 int R RGB中的R int G RGB中的G int B RGB中的B CGraph类中 int m_nType:保存后重绘时用户的选择int qdx; 重绘起点x int qdy; 重绘起点y int zdx; 重绘终点x int zdy; 重绘终点y CLine类中 int cx; 重绘线宽 int sx; 重绘起点x int sy; 重绘起点y int zx; 重绘终点x int zy; 重绘终点y int w; 重绘线宽 自定义颜色对话框关联变量: IDC_EDIT_RED int m_Red IDC_EDIT_GREEN int m_Green IDC_EDIT_BLUE int m_Blue IDC_SCROLL_RED CScrollBar m_Sred IDC_SLIDER_GREEN CSliderCtrl m_Sgreen IDC_SPIN_BLUE CSpinButtonCtrl m_Sblue 2 分析、设计与实现 2.1 主要功能设计与实现

MFC实现简单画图形程序(学习相关)

《MFC编程及应用》课程设计报告题目:简单画图形程序 学号:姓名: 指导老师: 时间: 评语:

程序设计步骤: 一、建立基于对话框的应用程序框架; 二、CMy0910200155Dlg类中关键新增变量的作用: CPtrArray pta; //用于保存已绘图形的相关信息。 CMemoryNode *pmN; //指向CMemoryNode类的指针,程序运行过 程中动态保存对象信息。 CMemoryNode *pmn; //指向CMemoryNode类的指针,从文件中读 取信息时动态创建类的对象。 COLORREF m_CurrentBrushColor; //用于存放当前画刷的颜色。 COLORREF m_CurrentPenColor; //用于存放当前画笔的颜色。 int num; //用于存放从"Index.txt"文件中读取的数字。 int flag=0; //用于标识:当为1时,表示按下了”画图”按钮;当为2时, 表示按下了”撤消”按钮;当为3时,表示按下了”加载历史” 按钮,则从文件中读取信息。 int mark; //用于标识:当为0时,表示刚画过矩形;当为1时,表示 刚画过圆角矩形;当为2时,表示刚画过椭圆。 int index; //用于存放pta数组的容量。 int flag1=0; //用于标识,和flag搭配,用来处理多种情况下的窗口重绘 问题。 int ButtonState=0; //用于标识,是类CShow和类CMy0910200155Dlg 的一个接口,通过其值在1和0之间转换,来处理弹出式对 话框的初次绘制和移动时的重绘问题。

c面向对象程序设计MFC简单计算器实验报告

计算机与信息工程学院 《程序设计基础》课程设计报告 题目名称:60.编写一个能实现简单功能的计算器学生姓名:刘沛东 学生学号:2011508154 专业班级:电子信息工程(1)班 指导教师:高攀

1 课程设计的题目 编写一个能实现简单功能的计算器 2 题目要求 1. 有一个计算器图形。 2. 能实现加、减、乘、除及乘方的运算。 3. 当输入题目时,屏幕上要在指定位置上显示出相应的题目内容,且相应的数字键要改变颜色 例如:输入数字1 时,在计算器图形上的1键变为红色。 4. 屏幕、图形颜色、形状自定 3 总体设计 3.1 总体框架 图1 系统框架

3.2 系统功能说明 在VC++6.0中绘制计算器界面,各控件的设置 对0~9控件设定相应的ID和其他属性: 图2 “1”控件设置 对“+、-、*、\”控件设定相应的ID和其他属性: 图2 “+”控件设置 对其它控件设定相应的ID和其他属性: 图3 其它控件设置

主要使用到Layout菜单中的Align功能对各个按钮进行对其,使界面更加整洁。拖出的控件有上面的一个Edit控件用于显示数字,Button控件用于处理鼠标的消息。 4 程序详细设计 4.1系统主调模块 图5 程序流程图

4.2各模块详细设计 4.2.1 建立的变量,控件的命名,对应的消息处理函数对应表 double poz; //保存小数点的位置,初始化为1,表示poz-1个小数点。 double m_Dis; //Edit控件上需要显示的数字 BOOL point_flag; //小数点表示位,判定是否是小数,是小数为1,不是小数为0。 double numfirst; //保存计算过程中的前一个数字, double numsecond;//保存计算过程中的第二个数字 char op;//记录当前的计算符号,可以为’+’,’-’,’*’,’/’,’=’,’c’,’n’ 变量初始化: poz=1; m_Dis = 0.0; numfirst=0; numsecond=0; op=0;

Photoshop学用基本绘图工具教学设计

单元(章)教学设计 初一信息 授课时间: 2017 年 9月1 日至9月24日 第二课学用基本绘图工具 教学目标: 1、知识与技能 (1)学会新建空白图像 (2)初步学会使用渐变,文字,移动,矩形选框,油漆桶,喷枪等工具 2、过程与方法 通过学会“渐变”和“添加文字”工具、制作简单的广告牌,了解渐变和添加文字工具的用途,学会制作图像的一般方法,从而总结归纳制作图画步骤和方法。 3、情感态度与价值观 培养学生热爱大自然,树立保护环境的意识 教学重点: 学会使用渐变,添加文字工具 教学难点: 了解制作图画的基本思路和方法 课时: 1课时 教学准备: 网络机房、视频文件等 教学过程: 一、课堂引入 展示图片——在校园中拍摄的系列绿化牌。 为了美化环境、提醒同学们不要乱踩塌花园草地,学校制作了类似的绿化牌。这节课我们用phtoshop中的绘图工具来制作这样的绿化牌。 二、作品分析 1、渐变背景:为了美化绿化牌的背景,用渐变工具填充;

2、文字效果:添加文字工具 三、操作步骤 1、设置颜色 把前景色设为银灰色,背景色设为深绿色。单击工具箱中的前景色,背景色色标,弹出“拾色器”时,选定一种颜色。 2、新建一幅空白图像 执行“文件—新建”命令,高度设为10厘米,宽度设为12厘米,分辨率设为72。 1、选定一个矩形区域 选择工具箱中的矩形选框工具,然后选定一个矩形区域。 4、选择工具箱中的油漆桶工具 单击“油漆桶工具”选项,选择油漆桶工具。 5、填充颜色 在选定的区域内单击,填充银灰色(前景色)。 操作提示:填充颜色时,操作有误或对填充色不满意,可以“ctrl+z”键撤消所作的操作。 6、取消选定区域 执行“选择—取消选择”命令,可以取消选定区域。 7、再选定一个矩形区域 利用矩形框工具来画出一个矩形区域。 8、选择画笔工具 选择画笔工具后,单击属性选项,设置“主直径”为10像素。 9、画矩形框的边框阴影 1)把前景色设为白色后,按住SHIFT键,依次单击选定区域的左下角、右下角、右上角,画出一条白色折线。 2)把前景色设为黑色后,按住SHIFT键,依次单击选定区域的右上角、左上角、坐下角,画出一条黑色的折线。 10、画支柱

简单画图程序-课程设计

简单画图程序-课程设计 目录 1. 基本功能描 述 ............................................................. 1 2. 设计思路 ................................................................. 1 3. 软件设 计 (3) 3.1 设计步 骤 (3) 3.2 界面设 计 (6) 3.3 关键功能的实 现 ...................................................... 7 4. 结论与心 得体会 ........................................................... 8 5. 参考文 献 ................................................................. 9 6. 思考 题 (9) 7. 附 录 ..................................................................... 9 7.1 调试报 告 (9)

7.2 测试结 果 (10) 7.3 关键源代 码 (1) 武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书 简单画图程序 1. 基本功能描述 1) 在菜单处的有相应的菜单项,可以选择绘制的图形形状,如直线、矩形及椭圆,可 -5可供选择,还可以选择线色以及填充色,通过弹出的颜色对话框选择以选择线宽,有1 需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔以及画刷来绘制选择的图形。 2) 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,鼠标弹起,此图形则绘制完毕。 3) 增添了工具栏,有相应的选择项,可以更方便地实现相应的功能。 2. 设计思路 1) 对需要用到的变量进行初始化。 2) 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,则改变画笔和画刷的属性。 3) 鼠标的按下响应LButtonDown(),定义起点的坐标,鼠标的拖动响应MouseMove()改变终点的坐标,鼠标的弹起响应LButtonUp(),刷新,得到绘制图形。

画图工具的综合运用教学设计

画图工具的综合运用 一、教学目标 1、情感态度与价值观: 培养学生的信息技术与美术整合能力和环保意识;培养学生与人合作、互相启发、自主探究、团结合作,开展小组协作学习的习惯;培养学生创新精神和探究意识,提高学生的审美能力,提高学生的分析能力和语言表达能力。 2、知识与技能: 学会使用基本绘图工具的操作;能综合运用所学知识创作图画作品。 3、过程与方法: 通过情景创设,激发学生的学习和制作热情; 通过自主探究、小组协作交流,掌握绘图工具的使用技巧; 通过以“画图”软件自带的“帮助”为学生解决学习的问题,培养学生信息技术课程中遇到难题时,能通过“帮助”解决问题;能根据电脑绘图作品的评价标准,对自己和他人的作品进行简单的评价。二、教学过程 导入 师:同学们,上课前我们先来欣赏一幅作品,这是我们学校的同学参加电脑绘画比赛的作品,你觉得怎样呢?你能说出他都使用了哪些画图工具呢?(展示作品) 其实这些画图工具我们都已经学习过了,你们都来复习一下我们都学过了哪些画图工具,你们还记得他们的使用方法吗?

今天我们利用电脑画图工具创作吧!(板书课题:画图工具的使用)(播放音乐) (板书课题:画图比创意) 1、布置任务 1)我们需要绘画哪几个部分 2)需要使用哪些画图工具进行绘画创作 3)使用什么方法进行绘画是最简便的 4)怎样能使我们画的更漂亮、更活泼、更有个性 2、成果交流 师:你能将自己想到的方法与大家一起交流吗? 师:同学们的方法真好!其实,我们还可以使用大小不一、形状不同的图形能组合出丰富的花纹和图案,这也是最简便的绘画方法。1、归纳画步骤,并找出可使用的画图工具有哪些。 1)画身体 2)加颜色 2、利用图形的组合创作花纹 3、夸张、添加、变形、添加表情…… 三、教师评价作品展示 师:同学们,你们真棒!能用鼠标把把画板打扮得这么漂亮。其实,我们还能使用电脑画图软件画出内容更丰富的图画(展示学生作品),只要我们继续努力也能达到更高的水平。 下节课,我们继续进行电脑画图的创作,好吗?

几何画板教程第二节:用绘图工具绘制简单的组合图形

第二节用绘图工具绘制简单的组合图形 下面我们用绘图工具来画一些组合图形,希望通过一下范例的学习,你能够熟悉绘图工具的使用,和一些相关技巧。 例1、三角形(一) 一、制作结果如图所示,拖动三角形的顶点,可改变三角形的形状、大小 这个三角形是动态的三角形,它可以被拖成下列三角形之一,如图9所示。 图9 二、要点思路熟悉“直尺工具”的使用,拖动图中的点改变其形状。 三、操作步骤观察图10,你能明白三角形就是用【直尺工具】画三条首尾相接的线段所组成的图形。 图10 1、打开几何画板,建立新绘图 2、单击【直尺工具】,将光标移到在绘图区,单击并按住鼠标拖动,画一条线段,松 开鼠标。 3、在原处单击鼠标并按住拖动,画出另一条线段,松开鼠标。(注意光标移动的方向) 4、在原处单击鼠标并按住拖动,画出第三条线段,光标移到起点处松开鼠标。(注意起点 会变色) 5、将该文件保存为“三角形.gsp” 拓展:你也可以将光标移到在绘图区,单击并松开鼠标拖动,画一条线段,单击鼠标。在原处再单击鼠标并松开拖动,画出另一条线段,单击鼠标。在原处单击鼠标并松开拖动,画出第三条线段,光标移到起点处单击鼠标。 例2三角形(二) 一、制作结果三角形三边所在的线分别是直线、射线和线段,拖动三角形的顶点可以改变三角形的大小和形状,如图11所示。在讲解三角形的外角时,就可构造此图形。 图11

二、知识要点学会使用【线段工具】、【直线工具】、【射线工具】以及它们相互之间的切换。 三、操作步骤 1、打开几何画板,建立新绘图。 2、选择画直线工具将光标移动到【直尺工具】上按住鼠标键不放,移动光标到【直线工 具】上,松开鼠标,如图12所示。 图12 3、画直线将鼠标移动到画板中,按下鼠标键,向右拖曳鼠标后松鼠标键。 4、选择画射线工具用鼠标对准【直线工具】,按下鼠标键并拖曳到【射线工具】处松鼠 标,如图13所示。 图13 5、画射线将鼠标对准定义直线的左边一点(在按下鼠标左键之前请注意窗口左下角的提 示),按下鼠标键,向右上拖曳鼠标后松鼠标键。 6、选择画线段工具用鼠标对准画线工具,按下鼠标键并拖曳到线段工具处松鼠标。如图 14所示。 图14 7、画线段将鼠标对准定义射线的右上一点C(注意窗口左下角的提示信息),按下鼠标 键,向定义直线的右边一点B拖动(注意提示),匹配上这一点后松鼠标。8、将该文件保存为“三线三角形.gsp” 例3、圆内接三角形 一、制作结果如图15所示所示,拖动三角形的任一个顶点,三角形的形状会发生改变,但始终与圆内接。 图15 二、要点思路学会使用画线工具在几何对象上画线段 三、操作步骤如图16所示 图16 1、打开几何画板,建立新绘图。

简易画图板设计报告

设计报告:Graphic简易画 图板 -----韩伟谢程焜肖越周峰 电科二班

1设计目的 设计一个单文档类型的MFC AppWizard (exe)工程,工程取名为:Graphic。此程序将实现简单的绘图功能,包括点、直线、矩形、椭圆、扇形和连续线的绘制。并且能实现绘图的控制,包括线宽、线型和颜色的设置,图形的保存和打开以及笔刷的使用。 2 总体设计 设计图如图6

图6 3详细设计 首先,新建一个单文档类型的MFC AppWizard (exe)工程,工程取名为:Graphic。为此程序添加一个子菜单,菜单名称为“绘图”,并为其添加六个菜单项,分别用来控制不同图形的绘制。当用户选择其中的一个菜单项后,程序将按照当前的选择进行相应图形的绘制。添加的六个菜单项的ID及名称如表1所示。然后分别为这六个菜单项添加命令响应,本程序让视类(CGraphicView)对这些菜单命令进行响应,这六个响应函数的名称分别如表1所示。

在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。因此在CGraphicView类中添加一个私有变量m_nDrawType;用来保存用户的选择,该变量的定义如下所述: private: UINT m_nDrawType; 接着,在视类的构造函数中将此变量初始化为0,程序代码如下: CGraphicView::CGraphicView() { // TODO: add construction code here m_nDrawType=0; } 利用switch/case语句,来分别完成相应图形的绘制。当用户选择【绘图】菜单下的不同子菜单项时,将变量m_nDrawType设置为不同的值。程序代码如下:void CGraphicView::OnDot() { // TODO: Add your command handler code here m_nDrawType=1; } void CGraphicView::OnLine() { // TODO: Add your command handler code here m_nDrawType=2; } void CGraphicView::OnRectangle() { // TODO: Add your command handler code here m_nDrawType=3; } void CGraphicView::OnEllipse() { // TODO: Add your command handler code here m_nDrawType=4;

简单的画图软件画流程图

流程图是一种表示算法的图示,通常用图形将操作步骤,用带箭头的线连接起来的一系列操作,用以表示执行任务的前后步骤。通过流程图直观的展示,更易于工作参与人员的理解。根据美国标准化协会确定的流程图符号,也常被世界工作者所采用,常用的流程图符号有处理框、判断框、输入输出框、起止框、连接点、流程线和注释框。 传统的流程图用连接线指出各项工作顺序,对于新手来说,并不能掌握其中的规律,画出来的流程图,让阅读者花费很大的精力去了解整个流程和算法。如果我们可以借助模板,这样就可以规律性的修改各节点的顺序组成,让阅读者更容易从头到尾的看下去。亿图图示正好满足以上优点,还有额外三大特点:操作简单、模板丰富并且兼容多种文件。 流程图模板 亿图图示可以创建多种类型的流程图:事件流成图、工作流程图和程序流程图等等。

流程图例子 丰富的例子可帮助我们快速绘制想要的流程图框架,方便二次编辑。 选择好专业的流程图工具,接下来我们详细的了解一下绘制步骤。 首先下载并安装亿图图示软件,选择新建流程图,创建空白文档进入画布,当然也可以选择自己喜欢的流程图模板点击进入。 其次,在左侧的符号栏里有各种符号,用来搭建整个框架,选择需要的符号,直接拖拽到画板位置,利用软件的网格和标尺定位好图形符号的位置 最后,记得双击图形,输入补充文本关键词。如果想要流程图显得不那么单调,可以通过上方的样式栏更换主题颜色,使得流程图更专业。

亿图图示,即亿图图示专家(EDraw Max),是一款基于矢量的绘图工具,包含大量的事例库和模板库。可以很方便的绘制各种专业的业务流程图、组织结构图、商业图表、程序流程图、数据流程图、工程管理图、软件设计图、网络拓扑图等等。它帮助您更方便,更快捷的阐述设计思想,创作灵感。

基于MFC的OpenGL绘图

基于MFC的OpenGL绘图 本文更新版本请点击 [置顶]《基于MFC的OpenGL编程》系列文章 一、简介 GDI是通过设备句柄(Device Context以下简称"DC")来绘图,而OpenGL则需要绘制环境(Rendering Context,以下简称"RC")。每一个GDI命令需要传给它一个DC,但与GDI不同,OpenGL使用当前绘制环境(RC)。一旦在一个线程中指定了一个当前RC,在此线程中其后所有的OpenGL命令都使用相同的当前RC。虽然在单一窗口中可以使用多个RC,但在单一线程中只有一个当前RC。下面我将首先产生一个OpenGL RC并使之成为当前RC,这将分为三个步骤:设置窗口像素格式;产生RC;设置为当前RC。 二、MFC中的OpenGL基本框架 1、首先创建工程 用AppWizard产生一个MFC EXE项目,其他默认即可。 2、将此工程所需的OpenGL文件和库加入到工程中 在工程菜单中,选择"Build"下的"Settings"项。单击"Link"标签,选择"General"目录,在Object/Library Modules的编辑框中输入"opengl32.lib glu32.lib glut.lib glaux.lib"(注意,输入双引号中的内容,各个库用空格分开;否则会出现链接错误),选择"OK"结束。然后打开文件"stdafx.h",加入下列头文件: #include #include 3、改写OnPreCreate函数并给视图类添加成员函数和成员变量

OpenGL需要窗口加上WS_CLIPCHILDREN(创建父窗口使用的Windows风格,用于重绘时裁剪子窗口所覆盖的区域)和WS_CLIPSIBLINGS(创建子窗口使用的Windows风格,用于重绘时剪裁其他子窗口所覆盖的区域)风格。把OnPreCreate改写成如下所示:BOOL COpenGLDemoView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs cs.style |= (WS_CLIPCHILDREN | WS_CLIPSIBLINGS); return CView::PreCreateWindow(cs); } 产生一个RC的第一步是定义窗口的像素格式。像素格式决定窗口着所显示的图形在内存中是如何表示的。由像素格式控制的参数包括:颜色深度、缓冲模式和所支持的绘画接口。在下面将有对这些参数的设置。我们先在COpenGLDemoView的类中添加一个保护型的成员函数BOOL SetWindowPixelFormat(HDC hDC)(用鼠标右键添加)和保护型的成员变量:int m_GLPixelIndex;并编辑其中的代码如下: BOOL COpenGLDemoView::SetWindowPixelFormat(HDC hDC) {//定义窗口的像素格式 PIXELFORMATDESCRIPTOR pixelDesc= { sizeof(PIXELFORMATDESCRIPTOR), 1, PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL| PFD_DOUBLEBUFFER|PFD_SUPPORT_GDI, PFD_TYPE_RGBA, 24, 0,0,0,0,0,0, 0, 0,

基于MFC的简单画图程序实验

简单画图程序 【实验目的】 本实验目的是通过构建基于MFC的windows画图程序,使学生: (1) 理解MFC应用程序的运行机制 (2) 掌握使用MFC构建Windows应用程序的基本结构及编程的基本方法 (3) 理解和掌握MFC应用程序消息处理机制及应用 (4) 掌握类向导(ClassWizard)的使用 【实验要求】 (1) 必须做好实验原理的预习。 (2) 需要对提供的程序代码进行分析,并明确实验时还应在何处添加哪些语句。 【实验环境】 Microsoft Windows XP Microsoft Visual C++ 6.0 1 基本功能描述 1) 在单文档菜单中,在菜单行中可插入一个菜单项,命名为绘图,在下拉菜单中可分别设置绘制的图形形状,如直线、矩形及椭圆,线宽选项,有1-5可供选择,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。 2) 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,当鼠标弹起,此图形则绘制完毕。 3) 增添工具栏,设置绘制的图形形状,线色以及填充色,可更方便地选择相应的功能。 2 设计思路 1) 对需要用到的变量进行初始化。 2) 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同

3) 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4) 选择图形或其它属性,可进行下一次绘制。

操作简单、功能强大的制图软件

操作简单、功能强大的制图软件 操作简单、功能强大的制图软件2009-07-12 21:56 引用 理睬的Nature Illusion Studio v2.60 (操作简单、功能强大的制图软件) 理睬向您介绍一款动画软件,名称叫做“Nature Illusion Studio v2.60 汉化版”。这是一款界面简洁、操作方法简单、功能强大、非常好用的免安装版动画小软件(大小只有3.81MB),解压到指定文件夹即可使用。它能用简单的步骤制作出复杂的动画文件,是现有许多同类动画软件无法做到的。它可以使jpg图片或bmp图片中的瀑布、江河湖海、树叶、人物头发等都动起来,可以在动画中添加下雨、下雪效果,添加人物、飞鸟、文字等各种GIF动画或GIF、JPG等图片。它可以制作GIF动画、AVI视频文件、可执行文件和屏幕保护程序文件,在制作可执行文件和屏幕保护程序文件中可以添加人物、动物、流水、交通工具等发出的声音以及歌曲等音频文件。 1. 这款软件的界面很简洁:

Nature Illusion Studio v2.60 汉化版界面 2.. 这款软件的下载地址: 下载地址之一: Nature Illusion Studio v2.60 汉化版下载地址: https://www.doczj.com/doc/e013529799.html,/soft/3389.htm 软件大小:3.81 MB 软件授权:免费软件(根据上面地址打开网页后,再向下找到以下两处任选一处点击下载) 点这里本地高速下载[ 广州电信] 点这里本地高速下载[ 江苏电信] 下载地址之二: 让“死板”的图片动起来:Nature Illusion Studio v2.60 汉化版下载地址: https://www.doczj.com/doc/e013529799.html,/thread-64484-1-1.html 必须下载以下两个文件才能完善: 迅雷专用高速下载_NatureStudio.rar (3.19 MB) 迅雷专用高速下载_NIScr.rar (327.42 KB) (把这个软件NIScr.rar下载后,解压到主程序文件夹 “NatureStudio”即可。)

c++实验报告mfc简单画图程序).doc

V C++程序设计实验报告 一、实验目的 掌握MFC编程 二、实验内容 用MFC向导创建单文档应用程序,一个简单的画图程序。 ?使用C++语言实现 ?使用VC++6.0集成开发环境开发 ?使用MFC应用程序开发框架 三、实验步骤 ?基本功能描述 1. 打开exe文件,在绘图下拉菜单中可分别设置绘制的图形形状,如直线、曲线、矩形及椭圆,线宽选项,有1-6可供选择,线型选项有实线、虚线、点线和点段线供设置,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。 2. 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,当鼠标弹起,此图形 则绘制完毕。 ?设计思路 1. 对需要用到的变量进行初始化。 2. 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。 3. 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4. 选择图形或其它属性,可进行下一次绘制。 ?软件设计 A 设计步骤 1.创建单文档 创建一个MFC AppWizard[exe]工程,命名为“Draw”,如图1所示,并创建单文档,如图2所示。创建成功后,系统自动生成相应的类,如图3所示。

图1 创建工程 图2 创建单文档

c++课程设计(简易绘图程序)

目录 1、需求与功能分析 (1) 2、系统总体框架 (2) 3、模块设计与分析 (3) 3.1画图模块 (3) 3.2贴图模块 (3) 3.3窗口模块 (4) 3.4菜单模块 (4) 3.5工具栏与状态栏模块 (4) 4、类的设计与分析 (4) 4.1、CAboutDlg类 (4) 4.2、CChildFrame类 (4) 4.3、CDib类 (4) 4.4、CDrawingDoc类 (5) 4.5、CDrawingView类 (6) 4.6、CMainFrame类 (7) 4.7、CSettingDlg类 (7) 5、特色算法分析 (8) 5.1 CDib类中的显示bmp位图 (8) 5.2 CDrawingView类中的画图部分 (10) 6、功能测试 (13) 7、存在的不足与对策 (16) 8、程序源代码 (17) 9、使用手册 (17) 10、参考文献 (20)

1、需求与功能分析 为了检验一个学期以来自己学习c++这门课程能够学到多少知识,加上原来就对图像处理就比较感兴趣,曾经更有想过要做一个可以合成红蓝3D图片的一款软件,就是那种需要带上红蓝眼镜才可以看到3D效果的那种图片,自己也有用photoshop做过这样的图片,但是photoshop需要调很多东西才能合成这样的图片,而且还要用相机送两个不同的角度拍两张照片作为源图片去合成红蓝3D图片,虽然我知道原理并不难,但是当我选择了”简易绘图程序”这个课程设计的题目之后,才发现每实现一个功能都需要花很多的精力,而且实现那些功能之后还会发现各种各校的bug,需要细心去寻找解决的办法。如今课程设计也要上交,一样还有很多我想实现的功能都还没实现,最终也没有实现我想要实现的功能---合成红蓝3D图片。只做了一些简单的绘图功能。 功能分析,目前这个软件的主要功能有如下: 1、画直线:通过OnLine()函数实现。 2、画矩形:通过OnRectangle()函数实现。 3、画椭圆:通过OnEllipse()函数实现。 4、铅笔工具:可以画任意线条。通过OnPencil()函数实现。 5、橡皮擦:可以擦除所画的线条。该功能还没实现。 6、右键弹出菜单:可以在客户中点击鼠标右键,快速选择常用菜单。通过 OnContextMenu函数实现。 7、状态栏显示鼠标移动的坐标:在程序的右下角显示,通过OnUpdateX(CCmdUI *pCmdUI)和OnUpdateY(CCmdUI *pCmdUI)这两个函数实现。 8、画图颜色选择:可以画任何颜色的线条,通过OnEditColor()函数实现。 9、读取bmp位图:可以在电脑中选择一个bmp位图,在程序中显示出来,通过 新建一个Cdib类来读取bmp文件信息再view类和Doc类调用来显示该位图。 10、保存为bmp位图:可以将在程序所画的图形保存为一幅bmp图片,通过view 中的SaveAsBmp(CString filename)实现。 11、线条类型及线宽的设置:可以将画出的线条设置成实线、虚线、点线,还可

第3章基本绘图工具

课堂教学教案

打开软件,新建文件。 使用矩形工具绘制一个矩形。在属性栏设置宽度为20高度为150。 矩形工具绘制的矩形不同于手绘工具绘制的曲线,默认状态下是不能调整其节点的。使用选择工具选中矩形,在矩形上单击鼠标右键,在弹出的菜单中选择【转换曲线】。这样,矩形就变成了与手绘工具绘制的曲线性质相同的曲线。 使用形状工具,在矩形右上角添加两个节点。然后删除矩形右上角的节点。将矩形填充 Step7.从水平标尺上拖出一条水平辅助线,将辅助线拖到两个矩形底部。在菜单栏选中【视图】【贴齐辅助线】,使用选择工具将两个矩形底部与辅助线对齐。

Step12.选中两个椭圆,在属性栏选择【后减前】工具,将椭圆裁剪为月牙形并填充橙色。选中所有图形,在属性栏中选择【焊接】按钮,将他们焊接为一个整体。 Step13.在工具箱选中星形工具绘制一个五角星,填充绿色并复制4个。 Step14.使用文字工具输入“SUNSHINE PLAZA”(阳光大厦),文字颜色为黑色,字体自定。使用选择工具调整大小。 Step15.至此企业标志制作完成。 挑选工具的使用 【挑选】工具的主要功能是选择对象,并对其进行移动、复制、缩放、旋转或扭曲等操作。 ①选择图形的功能 利用挑选工具选择图形有两种方法,一是在要选择的图形上单击,二是框选要选择的图形。用框选的方法选择图形,拖曳出的虚线框必须将要选择的图形全部包围,否则此图形不被选择。图形被选择后,将显示由8个小黑色方形组成的选择框。 【挑选】工具结合键盘上的辅助键,还具有以下选择方式。 按住Shift键,单击其他图形即添加选择,如单击已选择的图形则为取消选择。

相关主题
文本预览
相关文档 最新文档