资源简介
通过一个以上的控制点,计算四参数转换参数,并利用转换参数将其他测量点转换成不同的坐标系下的坐标!

代码片段和文件信息
#include
#include
#include
#include
#include
#include
void det(double **pdouble **bdouble **cint n); //求逆函数
void transform(double **adouble **bint mint n); //求转置的函数
void multiplication(double **adouble **bdouble **cint mint sint n);//矩阵相乘函数
void add(double **adouble **bdouble **abint mint nint sign);//矩阵加、减函数
void main()
{
int ijNM;
double **oldp**newp1; //旧坐标 新坐标观测值 新坐标平差值
cout<<“请输入公共点的个数\n“;
cin>>N;
cout<<“请输入需要转换的点的个数\n“;
cin>>M;
oldp=new double*[N]; //重合点在旧坐标系中的坐标
for(i=0;i oldp[i]=new double[2];
newp1=new double*[N]; //重合点的在新坐标系中的坐标
for(i=0;i newp1[i]=new double[2];
double **coneB; //系数矩阵B
coneB=new double*[2*N];
for(i=0;i<2*N;i++)
coneB[i]=new double[4];
double **TconeB; //系数矩阵B的转置
TconeB=new double*[4];
for(i=0;i<4;i++)
TconeB[i]=new double[2*N];
double **consL; //常数项矩阵L
consL=new double*[2*N];
for(i=0;i<2*N;i++)
consL[i]=new double[1];
double **Nbb; //法方程系数矩阵Nbb
Nbb=new double*[4];
for(i=0;i<4;i++)
Nbb[i]=new double[4];
double **DNbb; //法方程系数矩阵Nbb的逆矩阵
DNbb=new double*[4];
for(i=0;i<4;i++)
DNbb[i]=new double[4];
double **ENbb; //法方程系数矩阵Nbb的扩展矩阵
ENbb=new double*[4];
for(i=0;i<4;i++)
ENbb[i]=new double[8];
double **W; //用于表示Nbb*TconeB
W=new double*[4];
for(i=0;i<4;i++)
W[i]=new double[2*N];
double **parameter; //平差参数
parameter=new double*[4];
for(i=0;i<4;i++)
parameter[i]=new double[1];
double **V; //平差改正数
V=new double*[2*N];
for(i=0;i<2*N;i++)
V[i]=new double[1];
double **result2; //用于存储系数B与平差参数parameter的乘积
result2=new double*[2*N];
for(i=0;i<2*N;i++)
result2[i]=new double[1];
double **oldpoint; //用于存储需要转换的旧坐标
oldpoint=new double*[M];
for(i=0;i oldpoint[i]=new double[2];
double **newpoint; //用于存储旧坐标经转换后的新坐标
newpoint=new double*[M];
for(i=0;i newpoint[i]=new double[2];
//数据准备部分
ifstream input;
input.open(“公共点的旧坐标.txt“);
for(i=0;i for(j=0;j<2;j++)
input>>oldp[i][j];
for(i=0;i<2*N;i++) //写出方程系数矩阵B
for(j=0;j<4;j++)
{
coneB[i][0]=(0.5+pow(-1i)*0.5);
coneB[i][1]=(0.5-pow(-1i)*0.5);
coneB[i][2]=oldp[i/2][0]*(0.5+pow(-1i)*0.5)+oldp[i/2][1]*(0.5-pow(-1i)*0.5);
coneB[i][3]=oldp[i/2][0]*(0.5-pow(-1i)*0.5)+oldp[i/2][1]*(-0.5-pow(-1i)*0.5);
}
input.close();
input.open(“公共点的新坐标.txt“); //读入文本中的新坐标的观测值
for(i=0;i for(j=0;j<2;j++)
input>>newp1[i][j];
for(i=0;i<2*N;i++) //写出常数项矩阵L
for(j=0;j<1;j++)
consL[i][j]=newp1[i/2][0]*(0.5+pow(-1i)*0.5)+newp1[i/2][1]*
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8627 2010-01-14 15:23 convert.cpp
----------- --------- ---------- ----- ----
8627 1
相关资源
- VisualStudioUninstaller vs卸载工具
- 组态王驱动开发包3.0.0.7(中文)
- 多窗口后台鼠标连点器
- 使用选择性重传协议实现UDP可靠通信
- VC 获得文件属性 获取文件的创建时
- 读者写者问题(读者优先,写者优先
- 用VC 编写的仿QQ聊天室程序源代码
- 外点法程序
- 外罚函数程序
- qt-电子点菜系统
- 推箱子及人工智能寻路C 源代码
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- MUSIC算法c 实现
- C 餐厅叫号系统(QT平)
- 国际象棋c 完整版
-
ob
jectARX给Auto CAD加工具条 - 画图程序MFC/VC/VC CRectTracker 串行化
- MFC网络编程实例
- c 课程设计 职工信息管理系统
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
- 清华大学 c 郑莉 ppt课件
- c 程序判断离散数学中命题公式
- 多项式求和(数据结构C 版)
- vc 6.0开发的流程图编辑器
- VC 天空盒(skyBox)实现(附源代码)
- c MFC 画多边形
- 用C 实现的对网络上的ARP数据包进行
- Microsoft基本类库 (MFC)(C 库)
评论
共有 条评论