资源简介
通过一个以上的控制点,计算四参数转换参数,并利用转换参数将其他测量点转换成不同的坐标系下的坐标!
代码片段和文件信息
#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
相关资源
- QT实现的自定义窗口框架
- 实验一 绘图类及其对象程序设计
- 基于OpenGL的场景迷宫漫游可以碰撞检
- 考试系统中Word操作题自动阅卷的实现
- 利用OpenGL和ArcGIS处理得到的坐标数据
- funcode——拍飞虫
- AP聚类算法代码
- windows下socket 可以传输图片,压缩包等
- 进程调度的设计与实现图形界面实现
- 残周期正弦波形的四参数拟合
- Zbar库好不容易找到的有configure的源码
- 比较两篇纯英文文本的相似度
- inttypes.h
- 基于QT的方块消除游戏
- 多项式相乘一元稀疏多项式简单计算
- QT录音
- 数据结构课程设计--校园最短路径
- AUTO_CAD.rar
- windows平台抓屏源代码
- CSDN-TCP基于数据包通讯框架
- QRGenerator.zip
- STDLIB.H头文件
- Printer打印类
- 银行业务模拟
- 安排教学计划包括代码报告
- Qt开发的文本编辑器
- Linux下Qt开发的中国象棋
- qt aes加密 源代码
- visual studio 2017中英文企业版离线安装
- 二叉树指定第i层输出以及打印叶子结
评论
共有 条评论