C++ 图形学

MFC:c++的窗口程序

数组对象复制:A a=b、直接赋值,memcpy(只能复制一个值)等并不能独立复制出来:用for循环赋值可以

<*.h>表示优先中系统目录中查找 该头文件  比如#include <stdio.h>  这是系统中的
"*.h"表示优先从当前目录中查找  该头文件  比如#include "head.h"   这是你自己写的

带 .h 的头文件是旧标准的
新的标准的头文件不带 .h
如果要用C++标准化了的C语言头文件,就得作如下的转换:#include <stdio.h> --> #include <cstdio>

	int dirs[8][4]={1,7,2,6,    2,0,3,7   ,3,1,4,0   ,2,4,5,1   ,5,3,6,2   ,4,6,7,3    ,5,7,0,4   ,0,5,1,6};

typeof 指定别名

C++ typedef typename 作用
typedef typename std::vector<T>::size_type   size_type
typedef创建了存在类型的别名,而typename告诉编译器std::vector<T>::size_type是一个类型而不是一个成员。

_T是一个宏,作用是让你的程序支持Unicode编码。

 C++的模板:    template <class 形参名,class 形参名,......>
它们拥有同一个函数名,相同的函数体,参数类型和返回值类型不一样
从这些函数中提炼出一个通用函数,而它又适用于多种不同类型的数据,这样会使代码的重用率大大提高。

CString拼接字符串和数字:	c.Format( "%s%d %s%d    %s%d %s%d \n","HEI为:",HEI, ", WID为: ",WID ,     "a为:",a, ", b为: ",b ) ;

如果是对象就用 .
如果是指针就用 ->

Vector 容器:vector类称作向量类,它实现了动态的数组,用于元素数量变化的对象数组。
构造函数:
vector():创建一个空的vector。
vector(itn nSize):创建一个vector,元素个数为nSize。
vector(int nSize, const T& t):创建一个vector,元素个数为nSize,且值均为t。
vector(const vector&):拷贝构造函数。
vector<int>a,b(n,0)的意思就是 创建了一个 int 类型的空的vector容器a,和一个 int 类型n个元素,且值均为0的vecotr容器b。

 for(vector<string>::iterator myiter=s.begin();     myiter!=s.end();         ++myiter) //iterator迭代器中的项是随机的,到end为止!而不是小于end
 {
    cout << *myiter << endl; //iterator遍历
    vector.erase(myiter); //删除当前项
    *myiter = "hi";
 }


--------------------------------------------------------------------------------
CString输出为txt文件
	void CPosImageView::printTXT(CString str)
		{  
			if (str.IsEmpty())  
			{  
				return;  
			}  
			CString Temp;  
			CStdioFile File;  
			File.Open(_T("H://桌面//pos日志.txt"), CFile::modeReadWrite|CFile::modeNoTruncate|CFile::modeCreate);  
			File.SeekToEnd();  
			Temp = _T("\r\n-----------------------BEGIN------------------------\r\n");  
			Temp += str;  
			Temp += _T("\r\n-----------------------END------------------------\r\n");  
			File.WriteString(Temp );  
			File.Close();  
		}  



--------------------------------------------------------------------------------


应用程序的模板
SDI:单文档表示单窗口,从CFrameWnd类中派生。
MDI:允许打开多个文档,支持.doc,.html等,可切换不同文档的视图,有顶层框架,文档窗口,从CMDIFrameWnd类中派生


 VC6中SDI程序的执行流程CSdiApp为APP的名字

CSdiApp theApp //全局对象theApp
CSdiApp::CSdiApp()构造函数//创建窗体,cppSdiApp 处理消息,将收到的消息分发给相应的对象

5)CMainFrame::CMainFrame()------------------------------------------- //MainFrm.cpp//CMainFrame是视图CSdiView的父窗口
6)BOOL CMainFrame::PreCreateWind-REATESTRUCT& cs)---------- //MainFrm.cpp
7)int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)--- //MainFrm.cpp

8)CSdiView::CSdiView()---------------------------------------------------//sdiView.cpp//视图类CSdiView用来显示文档类CSdiDoc的数据
9)BOOL CSdiView::PreCreateWindow(CREATESTRUCT& cs)--------- //sdiView.cpp
10)BOOL CSdiDoc::OnNewDocument()----------------------------------//sdiDoc.cpp
11) void CSdiView::OnDraw(CDC* pDC)----------------------------------//sdiView.cpp
// ---------------- 关闭窗口后-------------------------------------
12) CSdiView::~CSdiView()
13) CMainFrame::~CMainFrame()
14) CSdiDoc::~CSdiDoc() 


AFX:Application Framework应用框架
afxwin.h定义MFC的核心和标准组件
assert宏:作用.如果assert()括号中的表达式/函数返回的是错误的,就终止运行;eg:assert(fileOpen!=NULL);


--------------------------------------------------------------------------------

CFrameWnd : 用途创建应用程序的主窗口, 属于主窗口管理视图和文档对象, 支持单文档界面(SDI)
OpenGL函数库前缀:
gl核心函数
glu使用函数,对核心函数进行了简单的封装,主要为了减少编程负担
aux辅助函数,主要是在windows平台上管理输入输出
wgl专用函数,w代表window,主要在windows平台使用

二值图像化思路:按照彩色的算就可以了,算完变成非二值图像,需要重新二值化


--------------------------------------------------------------------------------

图片左边跑到右边去了:fp读取的位置不对

24位
不需要调色板,直接使用RGB
位图数据的数据结构(eg:像素4*3的图片):
rgb rgb rgb rgb
rgb rgb rgb rgb
rgb rgb rgb rgb

8位256位
位图数据的数据结构(eg:像素4*3的图片):
值 值 值 值 //值在0-255之间,一个值对应着色板的一个颜色
值 值 值 值
值 值 值 值
调色板:
(3RGB*256的数组),对应256个彩色







--------------------------------------------------------------------------------

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值