绘图室(PaintOffice)

“绘图室”(PaintOffice)可以设计各个图形对象,每个图形对象包括坐标信息,并且可以通过构造函数初始化图形信息;每个图形对象提供Draw()函数,已完成自身的绘制,同时提供SetPos()成员函数来改变成员位置。本次设计中图形对象包括直线、椭圆、矩形三种,如果有兴趣的可以自行添加其他图形。每个类提供构造函数完成信息的初始化,类内没有系统能源申请,可以不要析构函数。Draw()、SetPos()函数可以看成类的成员函数。直线的坐标可用起点和终点的坐标来定位;矩形的坐标用左上角和右下角的坐标定位;椭圆的坐标可用椭圆的外接矩形来定位。

下面列出其中一个图形对象(直线)的相关程序,其他图形对象类似。

 1 //line.cpp
 2  #include "line.h"
 3  #include
 4  using namespace std;
 5
 6 Cline::Cline(int x1,int y1,int x2,int y2):CShape(x1,y1,x2,y2)
 7  {
 8   m_x1=x1;
 9   m_y1=y1;
10   m_x2=x2;
11   m_y2=y2;
12  }
13
14 void Cline::Draw()
15  {
16   cout<<"绘制直线"<<endl;
17  }
18
19 void Cline::SetPos(int x1,int y1,int x2,int y2)
20  {
21   m_x1=x1;
22   m_y1=y1;
23   m_x2=x2;
24   m_y2=y2;
25  }
26
27 //line.h
28  #pragma once
29  #include"Shape.h"
30  class Cline:public CShape
31  {
32  public:
33   Cline(int x1,int y1,int x2,int y2);
34   void Draw();
35   void SetPos(int x1,int y1,int x2,int y2);
36  private:
37   int m_x1;//起点x坐标
38   int m_y1;
39   int m_x2;//终点x坐标
40   int m_y2;
41  };

绘图室项目中的每个图形类都有坐标信息以及Draw()、SetPos()函数,这些成员可以作为一个共性放到一个基类中,有派生类继承。由于不同的图形类坐标信息的描述是一样的,所以坐标点和SetPos()函数适合放到父类中;但不同图形类的Draw()函数参数是一样的,只是具体实现不一样,所以在父类中可以设置为虚函数。

设计的基类CShape相关程序如下:

 1 //Shape.cpp
 2  #include "Shape.h"
 3
 4 CShape::CShape(int x1,int y1,int x2,int y2)
 5  {
 6   m_x1=x1;
 7   m_y1=y1;
 8   m_x2=x2;
 9   m_y2=y2;
10  }
11
12 void CShape::SetPos(int x1,int y1,int x2,int y2)
13  {
14   m_x1=x1;
15   m_y1=y1;
16   m_x2=x2;
17   m_y2=y2;
18  }
19
20 //Shape.h
21  #pragma once
22  class CShape
23  {
24  public:
25   CShape(int x1,int y1,int x2,int y2);
26   virtual void Draw()=0;
27   void SetPos(int x1,int y1,int x2,int y2);
28  protected:
29   int m_x1;//起点x坐标
30   int m_y1;//起点y坐标
31   int m_x2;//终点x坐标
32   int m_y2;//终点y坐标
33  };

转载请注明出处:

C++博客园:godfrey_88

http://www.cnblogs.com/gaobaoru-articles/

时间: 2024-11-05 19:36:55

绘图室(PaintOffice)的相关文章

zabbix 的部署及基础知识的讲解

一.Zabbix的介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员 快速定位/解决存在的各种问题,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台之上. - 安装与配置简单,学习成本低 - 支持多语言(包括中文) - 免费开源 - 自动发现服务器与网络设备 - 分布式监视以及WEB

Camera学习--光源

进入CV 领域,视频图像的成像,最前端的camera,camera的sensor 以及影响成像质量的光源,噪声等因素是绕不开的问题. 那么今天就从成像的光源说起. 标准光源(Standard Light Sources)是指模拟各种环境光线下的人造光源,让生产工厂或实验室非现场也能获得与这些特定环境下的光源基本一致的照明效果.标准光源通常安装在标准光源箱内,主要用于检测物品的颜色偏差,自动白平衡等校准需要用到各类标准光源. 众所周知,观察颜色离不开观察光源,没有光就没有色彩.物理学的知识告诉我们