资源简介
相对定向 摄影测量 C++完整能运行代码,才写的,完整能跑,有问题问我

代码片段和文件信息
#include
#include
#include
#include
using namespace std;
int const n = 6; //确定矩阵的节数
double x[4][2]X[4][3];
#define SIZE 1/40000 //像素比例尺
void input()
{
ifstream infile(“data.txt“);
cout<<“点号“<<“ “<<“像点x“<<“ “<<“像点y“<<“ “<<“大地X“<<“ “<<“大地Y“<<“ “<<“大地Z“< for(int i=0;i<4;i++)
{
infile>>x[i][0];
x[i][0]=x[i][0]*0.001;
infile>>x[i][1];
x[i][1]=x[i][1]*0.001;
infile>>X[i][0];
infile>>X[i][1];
infile>>X[i][2];
cout< }
cout< infile.close();
}
void temp(double aa[] double bb[] int n)
{ //交换数组指定的两行,即进行行变换(具体为行交换)
int i;
double temp1;
for (i = 0; i {
temp1 = aa[i];
aa[i] = bb[i];
bb[i] = temp1;
}
}
void trans(double att1[n][n]double att2[n][n])//求转置
{
for (int i = 0; i < n;i++)
{
for (int j = 0; j < n;j++)
{
att2[j][i] = att1[i][j];
}
}
}
void turn(double *Adouble *ATint amint an)
{
for(int i=0;i for(int j=0;j {
AT[j*am+i]=A[i*an+j];
}
}
double fun(double array[n][n]int a)//求行列式|A|
{
int ii jj k u;
int iter = 0;
double det1 = 1 yin;
for (ii = 0; ii {
if (array[ii][ii] == 0)
for (jj = ii; jj {
if (array[jj][ii] != 0)
{
temp(array[ii] array[jj] a);//交换两行
iter++;
}
}
for (k = ii + 1; k {
yin = -1 * array[k][ii] / array[ii][ii];
for (u = 0; u {
array[k][u] = array[k][u] + array[ii][u] * yin;
}
}
}
for (ii = 0; ii det1 = det1 * array[ii][ii];
if (iter % 2 == 1)
det1 = -det1;
return (det1); //返回行列式的值
}
void matrix(double aa[n][n]int aint b)
{
for(int i=0;i {
for(int j=0;j {
cout< }
cout< }
}
void matrix2(double M[]int m int n)
{
for(int i=0;i {
for(int j=0;j {
printf(“%.5lf “M[i*n+j]);
}
printf(“\n“);
}
printf(“\n“);
}
void getAStar(double a[n][n]double yu[n][n]){ //计算每一行每一列的每个元素所对应的余子式,组成A*
int ijkt;
double temp[n][n];
for(i=0;i for(j=0;j for(k=0;k for(t=0;t temp[k][t] = a[k>=i?k+1:k][t>=j?t+1:t];
//到这里,temp存放的是a[0][0]的余子式(当然对应到数学时这里就是元素a11的余子式了)
yu[j][i] =fun(tempn-1);
//同理,将余子式结果直接赋给yu[j][i]就可以了,这里为什么是ji而不是ij?
//因为这是伴随矩阵的排列方式决定的
if((i+j)&1)
yu[j][i] = - yu[j][i]; //同样要判断符号
}
}
void mulAB(double *Adouble *Bdouble *ABint amint anint bmint bn)
{
if(an!=bm)
{
cout<<“error! can not mul“< }
for(int i=0;i for(int j=0;j {
AB[i*bn+j]=0.0;
for(int k=0;k {
AB[i*bn+j]+=(A[i*an+k]*B[k*bn+j]);
}
}
}
void change(double A[8][6]double *resultint hangint lie)//二维降维
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-07-18 17:32 相对定向\
文件 489 2018-07-16 10:44 相对定向\data2.txt
目录 0 2018-07-18 17:26 相对定向\Debug\
文件 97792 2018-07-18 17:31 相对定向\Debug\houfangjiaohui.exe
文件 801268 2018-07-18 17:31 相对定向\Debug\houfangjiaohui.ilk
文件 936960 2018-07-18 17:31 相对定向\Debug\houfangjiaohui.pdb
文件 37376 2018-07-16 12:48 相对定向\Debug\te.exe
文件 382516 2018-07-16 12:48 相对定向\Debug\te.ilk
文件 625664 2018-07-16 12:48 相对定向\Debug\te.pdb
文件 93184 2018-07-18 17:26 相对定向\Debug\相对定向.exe
文件 630608 2018-07-18 17:26 相对定向\Debug\相对定向.ilk
文件 723968 2018-07-18 17:26 相对定向\Debug\相对定向.pdb
目录 0 2018-07-18 13:25 相对定向\houfangjiaohui\
文件 10460 2018-07-18 17:31 相对定向\houfangjiaohui\cc.cpp
文件 157 2018-07-18 11:48 相对定向\houfangjiaohui\data.txt
目录 0 2018-07-18 17:31 相对定向\houfangjiaohui\Debug\
文件 217739 2018-07-18 17:31 相对定向\houfangjiaohui\Debug\cc.obj
文件 590 2018-07-18 17:31 相对定向\houfangjiaohui\Debug\cl.command.1.tlog
文件 5668 2018-07-18 17:31 相对定向\houfangjiaohui\Debug\CL.read.1.tlog
文件 250 2018-07-18 17:31 相对定向\houfangjiaohui\Debug\CL.write.1.tlog
文件 4013 2018-07-18 17:26 相对定向\houfangjiaohui\Debug\houfangjiaohui.Build.CppClean.log
文件 406 2018-07-18 17:26 相对定向\houfangjiaohui\Debug\houfangjiaohui.exe.em
文件 472 2018-07-18 17:26 相对定向\houfangjiaohui\Debug\houfangjiaohui.exe.em
文件 381 2018-07-18 17:31 相对定向\houfangjiaohui\Debug\houfangjiaohui.exe.intermediate.manifest
文件 56 2018-07-18 17:31 相对定向\houfangjiaohui\Debug\houfangjiaohui.lastbuildstate
文件 2142 2018-07-18 17:31 相对定向\houfangjiaohui\Debug\houfangjiaohui.log
文件 713 2018-07-18 17:26 相对定向\houfangjiaohui\Debug\houfangjiaohui.vcxprojResolveAssemblyReference.cache
文件 0 2018-07-18 17:26 相对定向\houfangjiaohui\Debug\houfangjiaohui.write.1.tlog
文件 218 2018-07-18 17:26 相对定向\houfangjiaohui\Debug\houfangjiaohui_manifest.rc
文件 2 2018-07-18 17:31 相对定向\houfangjiaohui\Debug\li
文件 2 2018-07-18 17:31 相对定向\houfangjiaohui\Debug\li
............此处省略96个文件信息
- 上一篇:opencv+c++实现人脸识别
- 下一篇:基于C++的银行家算法模拟实现
相关资源
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
评论
共有 条评论