资源简介
空间两坐标系转换,7参数求解,注释详细,机构简单,一看就明白。利用平差求得7参数值,开源代码,便于自己添加坐标转换!
代码片段和文件信息
/* * * * * * * * * * * * * * * * * * * * *
* FileName: Matrix.h
* Description: Matrix Class
*
* Version: 1.0
* Author: wxs
* Finish Time: 2001年7月2日
* * * * * * * * * * * * * * * * * * * * * */
#include “stdafx.h“
#include “Matrix.h“
#include
#ifndef _EPSINON_
#define EPSINON 1e-18
#endif
#ifndef _MINDOUBLE_
#define MINDOUBLE -1.7e+308
#endif
#ifndef _MAXDOUBLE_
#define MAXDOUBLE 1.7e+308
#endif
CMatrix::CMatrix()//构造函数
{
m_nRow = 0;
m_nCol = 0;
m_pData = NULL;
}
CMatrix::CMatrix(int nRow int nCol)//带参构造函数
{
m_nRow = nRow;
m_nCol = nCol;
m_pData = new double*[m_nRow];
ASSERT(m_pData != NULL);
for (int i = 0; i < m_nRow; i++)
{
m_pData[i] = new double[m_nCol];
ASSERT(m_pData[i] != NULL);
for (int j = 0; j < m_nCol; j++)
{
(*this)[i][j] = 0;
}
}
}
CMatrix::CMatrix(int nRow int nCol double* pAry)//带参构造函数
{
ASSERT(pAry != NULL);
m_nRow = nRow;
m_nCol = nCol;
m_pData = new double*[m_nRow];
ASSERT(m_pData != NULL);
for (int i = 0; i < m_nRow; i++)
{
m_pData[i] = new double[nCol];
ASSERT(m_pData[i] != NULL);
for (int j = 0; j < m_nCol; j++)
{
(*this)[i][j] = pAry[i*m_nCol+j];
}
}
}
CMatrix::CMatrix(CMatrix & src)
{
m_nRow = src.Row();
m_nCol = src.Col();
m_pData = new double*[src.Row()];
ASSERT(m_pData != NULL);
for(int i = 0; i < src.Row(); i++)
{
m_pData[i] = new double[src.Col()];
ASSERT(m_pData[i] != NULL);
for(int j = 0; j < src.Col(); j++)
{
(*this)[i][j] = src[i][j];
}
}
}
CMatrix::~CMatrix(void)//析构函数
{
this->Empty();
}
void CMatrix::Serialize(CArchive &ar)//文件流操作
{
Cobject::Serialize(ar);
if(ar.IsStoring())
{
ar << m_nRow<< m_nCol;
for(int i = 0; i < m_nRow; i++)
{
for(int j = 0; j < m_nCol; j++)
{
ar << (*this)[i][j];
}
}
}
else
{
int nRow nCol;
ar >> nRow >> nCol;
SetMatrix(nRow nCol);
for(int i = 0; i < nRow; i++)
{
for(int j = 0; j < nCol; j++)
{
ar >> (*this)[i][j];
}
}
}
}
void CMatrix::Draw(CDC *pDC CPoint pos)//画矩阵
{
}
void CMatrix::Empty(void)//清空矩阵
{
if (m_pData != NULL)
{
for (int i = 0; i < Row(); i++)
{
delete[] m_pData[i];
}
delete[] m_pData;
m_pData = NULL;
}
m_nRow = 0;
m_nCol = 0;
}
BOOL CMatrix::IsEmpty(void)//判断矩阵是否为空
{
if (m_pData != NULL)
{
return FALSE;
}
return TRUE;
}
void CMatrix::SetMatrix(int nRow int nCol)//矩阵初始化为 0
{
this->Empty();
m_nRow = nRow;
m_nCol = nCol;
m_pData = new double*[nRow];
ASSERT(m_pData != NULL);
for (int i = 0; i < nRow; i++)
{
m_pData[i] = new double[nCol];
ASSERT(m_pData[i] != NULL);
for (int j = 0; j <
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 17800 2009-04-26 01:36 Transform\Matrix.cpp
文件 2587 2009-04-26 01:13 Transform\Matrix.h
文件 3633 2009-04-23 22:09 Transform\ReadMe.txt
文件 1270 2009-04-25 23:40 Transform\res\bitmap1.bmp
文件 894 2009-04-25 00:52 Transform\res\ROBOT31.ICO
文件 1078 2009-04-23 22:09 Transform\res\Transform.ico
文件 401 2009-04-23 22:09 Transform\res\Transform.rc2
文件 1882 2009-04-25 23:40 Transform\resource.h
文件 211 2009-04-23 22:09 Transform\StdAfx.cpp
文件 1054 2009-04-23 22:09 Transform\StdAfx.h
文件 25192 2009-05-02 16:14 Transform\Transform.aps
文件 3430 2009-05-06 11:59 Transform\Transform.clw
文件 2105 2009-04-23 22:09 Transform\Transform.cpp
文件 4470 2009-04-26 00:58 Transform\Transform.dsp
文件 543 2009-04-23 22:09 Transform\Transform.dsw
文件 1357 2009-04-23 22:09 Transform\Transform.h
文件 123904 2009-05-06 11:59 Transform\Transform.ncb
文件 54784 2009-05-06 11:59 Transform\Transform.opt
文件 713 2009-05-06 11:11 Transform\Transform.plg
文件 8750 2009-04-25 23:40 Transform\Transform.rc
文件 7612 2009-04-26 01:40 Transform\TransformDlg.cpp
文件 1828 2009-04-26 01:39 Transform\TransformDlg.h
目录 0 2009-04-26 15:01 Transform\res
目录 0 2009-05-07 13:01 Transform
----------- --------- ---------- ----- ----
265498 24
- 上一篇:数据连接地址.txt
- 下一篇:CVRP问题遗传算法实现
评论
共有 条评论