- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
摄影测量后方交会VC实现代码及实习报告
摄影测量课间实习
单片空间后方交会
班级:09031
姓名:吴煜晖
学号:2009302590123
2011-10-8
一、实习原理
单像空间后方交会的基本思想是:以单幅影像为基础,从该影像所覆盖地面范围内若干控制点的已知地面坐标和相应点的像坐标测值出发,根据共线条件方程,解求该影像在航空摄影时刻的外方位元素XS,YS,ZS,ψ,ω,κ。
由于空间后方交会所采用的数学模型共线方程是非线性函数,为了便于外方位元素的解求,须首先对共线方程进行线性化,然后进行后方交会,最后在精度评定。
二、实习过程
1、实习所用数据
本次实习数据采用课本P.44 27题所给数据。如下图:
2、程序流程图及界面设计
本程序程序框图如下:
本人采用Visual C++6.0编此程序,利用MFC来设计程序。
主程序页面设计如下:
子窗口(即进行计算后所得结果页面)设计如下:
3、程序代码
本程序代码较多,在此讲部分重要代码列出,其余代码参见程序源代码。
对话框类头文件内声明的类成员及函数(后来增加的):
public:
void houfangjiaohui();
double fi,w,k; //影像外方位角
double Xs0,Ys0,Zs0; //后方交会所求解
double a[3],b[3],c[3];
double mx[6],m0;
void inv(double *a,int n); /*正定矩阵求逆*/
void transpose(double *m1, double *m2, int m, int n); //矩阵转置
void mult(double *m1, double *m2, double *result, int i_1, int j_12, int j_2); //矩阵相乘
void CFinalworkDlg::houfangjiaohui()
{
double t_fk;
fi=w=k=0.0;
int i; //中间变量
double t_x[4],t_y[4],t_X[4],t_Y[4],t_Z[4];
//将单位换成米
t_x[0]=m_x1/1000.0; t_x[1]=m_x2/1000.0; t_x[2]=m_x3/1000.0; t_x[3]=m_x4/1000.0;
t_y[0]=m_y1/1000.0; t_y[1]=m_y2/1000.0; t_y[2]=m_y3/1000.0; t_y[3]=m_y4/1000.0;
t_X[0]=m_X1; t_X[1]=m_X2; t_X[2]=m_X3; t_X[3]=m_X4;
t_Y[0]=m_Y1; t_Y[1]=m_Y2; t_Y[2]=m_Y3; t_Y[3]=m_Y4;
t_Z[0]=m_Z1; t_Z[1]=m_Z2; t_Z[2]=m_Z3; t_Z[3]=m_Z4;
Xs0=Ys0=Zs0=0.0;
for(i=0;i4;i++)
{
Xs0+=t_X[i];
Ys0+=t_Y[i];
}
//确定未知数初始值
Xs0/=4;
Ys0/=4;
t_fk=m_fk/1000.0;
Zs0=t_fk*m_mk;
double x00=m_x00;
double y00=m_y00;
double A[8*6];
double AT[6*8];
double ATA[6*6];
double L[8];
double ATL[6*1];
double Xo[4],Yo[4],Zo[4],Xom,Yom,Zom;
double Delta[6];
while(1)
{
a[0]=cos(fi)*cos(k)-sin(fi)*sin(w)*sin(k);
a[1]=-cos(fi)*sin(k)-sin(fi)*sin(w)*cos(k);
a[2]=-sin(fi)*cos(w);
b[0]=cos(w)*sin(k);
b[1]=cos(w)*cos(k);
b[2]=-sin(w);
c[0]=sin(fi)*cos(k)+cos(fi)*sin(w)*sin(k);
c[1]=-sin(fi)*sin(k)+cos(fi)*sin(w)*cos(k);
c[2]=cos(fi)*cos(w);
for(i=0;i4;i++)
{
Xom=a[0]*(t_X[i]-Xs0)+b[0]*(t_Y[i]-Ys0)+c[0]*(t_Z[i]-Zs0);
Yom=a[1]*(t_X[i]-Xs0)+b[1]*(t_Y[i]-Ys0)+c[1]*(t_Z[i]-Zs0);
Zom=a[2]*(t_X[i]
文档评论(0)