亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? back111222.cpp

?? 單張像片空間后方交會程序
?? CPP
字號:
#include "iostream.h"
#include "math.h"

#define f 0.15324
#define x0 0
#define y0 0

void plus(double *a,double *b, double*c,int m1,int n1, int m2,int n2)
{
	int i,j,k;
	
	if (n1!=m2)
	{
		cout<<"can not plus!"<<endl;
		return ;
	}

	for(i=0;i<m1;i++)
		for(j=0;j<n2;j++)
			*(c+j+i*n2)=0;

	for(i=0;i<m1;i++)
		for(j=0;j<n2;j++)
			for(k=0;k<n1;k++)
				*(c+j+i*n2)+=*(a+k+i*n1)*(*(b+j+k*n2));


}
/******************************
   矩陣轉置
   矩陣a 為m*n的矩陣,
   返回矩陣a_t n*m
******************************/

void transpose(double *a, double*a_t,int m,int n)
{
	int i,j;
	for(i=0;i<m;i++)
		for(j=0;j<n;j++)
		{
			*(a_t+i+j*m)=*(a+j+i*n);
		}

	return;

}
/******************************
   矩陣求逆
   矩陣a 為m*n的矩陣,
   返回矩陣e 為a的逆矩陣
   矩陣a可逆的充要條件是a是方陣且a為非奇異矩陣
******************************/


void inverse(double *a,double*e,int m,int n)
{
	int i,j;
	double temp;
	double temp2;
	
	/*若該矩陣不是方陣,則不能求逆*/
	if(m!=n)
	{
		cout<<"a不是方陣,不能求逆!"<<endl;
		return;
	}

/*判斷該矩陣行列式的值,若值為0,則不能求逆 注釋掉的部分有錯誤*/
/*	double value_a=1;
	
	for(i=0;i<m;i++)
	{
		temp=*(a+i+i*m);
		for(j=0;j<m;j++)
		{
			*(a+j+i*m)/=temp;
		}
	
		for(int k=i+1;k<m;k++)
		{
			temp2=*(a+i+k*m);
			for(j=0;j<n;j++)
			{	
    			*(a+j+k*m)=*(a+j+k*m)-temp2*(*(a+j+i*m));
			}
		}

		value_a*=temp;
		
	}
	if (value_a==0)
	{
		cout<<"奇異矩陣不能求逆!"<<endl;
		return false;
	}
*/		
	
	for(i=0;i<m;i++)
		for(j=0;j<n;j++)
		{
			if(i==j) *(e+j+i*m)=1;
			else     *(e+j+i*m)=0;
		}
		
	for(i=0;i<m;i++)
	{
		temp=*(a+i+i*m);
	    for(j=0;j<m;j++)
		{
			*(a+j+i*m)/=temp;
	    	*(e+j+i*m)/=temp;
		}

		for(int k=i+1;k<m;k++)
		{
			temp2=*(a+i+k*m);
			for(j=0;j<n;j++)
			{	
				*(a+j+k*m)=*(a+j+k*m)-temp2*(*(a+j+i*m));
         		*(e+j+k*m)=*(e+j+k*m)-temp2*(*(e+j+i*m));
			}
		}
	 }

	for(i=m-1;i>0;i--)
	{
		for(j=0;j<m;j++)
		for(int k=i-1;k>=0;k--)
		{
			temp2=*(a+i+k*m);
			for(j=0;j<n;j++)
			{
				*(a+j+k*m)=*(a+j+k*m)-temp2*(*(a+j+i*m));
     			*(e+j+k*m)=*(e+j+k*m)-temp2*(*(e+j+i*m));
			}
		}
	}
	
}

double Ab(double a)
{
	double b;
	if(a>=0)
		b=a;
	else b=-a;
	return b;
}

/******************************
主函數
******************************/

void main()
{
	int i,j;                         //循環變量
	int num=0;                        //迭代次數
	double scale;                        //比例尺分母
	double Zs,Xs,Ys,fai,w,k;         //外方位元素
	double temp=0;                   //臨時變量
	double x[4]={-0.08615,-0.05340,-0.01478,0.01046};   //相片坐標觀測值
	double y[4]={-0.06899,0.08221,-0.07663,0.06443};
	double X[4]={36589.41,37631.08,39100.97,40426.54};  //地面坐標觀測值
	double Y[4]={25273.32,31324.51,24934.98,30319.81};
	double Z[4]={2195.17,728.69,2386.50,757.31};
	double a1,a2,a3,b1,b2,b3,c1,c2,c3;                  //矩陣R系數
	double XX[4],YY[4],ZZ[4];                                    //共線方程分子分母
	double x_x[4],y_y[4];                      //像點坐標的近似值
	double dXs,dYs,dZs,dfai,dw,dk;     //外方位元素改正數
	double A[8][6],L[8][1];          //總誤差方程式
	/*誤差方程式計算中間變量*/
	double AT[6][8];         //A的轉置
	double ATA[6][6];        //AT*A
	double ATA_1[6][6];      //ATA_1
	double ATL[6][8];        //AT*A_1*AT  
	double DX[6][1];
	/*精度*/
	double v=0,m0,m[6];
 
	//計算得到近似比例尺
	double s[3];         //計算出三段距離,得出比例尺,取平均  
	for(i=0;i<3;i++)
	{
		s[i]=sqrt((Y[i]-Y[i+1])*(Y[i]-Y[i+1])+(X[i]-X[i+1])*(X[i]-X[i+1]))/sqrt((y[i]-y[i+1])*(y[i]-y[i+1])+(x[i]-x[i+1])*(x[i]-x[i+1]));
		temp+=s[i];
	}
	scale=temp/3;
	scale=40000;
	
    //給定外方位元素的初值
	fai=0;
	w=0;
	k=0;
	Zs=scale*f+(Z[0]+Z[1]+Z[2]+Z[3])*0.25;
	Xs=(X[0]+X[1]+X[2]+X[3])*0.25;
	Ys=(Y[0]+Y[1]+Y[2]+Y[3])*0.25;


	//進行迭代
	while (Ab(dfai)>=0.0017 || Ab(dw)>=0.0017 || Ab(dk)>=0.0017 || num==0)
	{
		num+=1;
		//計算旋轉矩陣R
	    a1=cos(fai)*cos(k)-sin(fai)*sin(w)*sin(k);
	    a2=-cos(fai)*sin(k)-sin(fai)*sin(w)*cos(k);
	    a3=-sin(fai)*cos(w);
        b1=cos(w)*sin(k);
    	b2=cos(w)*cos(k);
    	b3=-sin(w);
    	c1=sin(fai)*cos(k)+cos(fai)*sin(w)*sin(k);
    	c2=-sin(fai)*sin(k)+cos(fai)*sin(w)*cos(k);
    	c3=cos(fai)*cos(w);

    	//通過共線方程計算像點坐標的近似值
    	for(i=0;i<4;i++)
		{
    		XX[i]=a1*(X[i]-Xs)+b1*(Y[i]-Ys)+c1*(Z[i]-Zs);
    		YY[i]=a2*(X[i]-Xs)+b2*(Y[i]-Ys)+c2*(Z[i]-Zs);
        	ZZ[i]=a3*(X[i]-Xs)+b3*(Y[i]-Ys)+c3*(Z[i]-Zs);	
	    	x_x[i]=-f*(a1*(X[i]-Xs)+b1*(Y[i]-Ys)+c1*(Z[i]-Zs))/(a3*(X[i]-Xs)+b3*(Y[i]-Ys)+c3*(Z[i]-Zs))+x0;
	    	y_y[i]=-f*(a2*(X[i]-Xs)+b2*(Y[i]-Ys)+c2*(Z[i]-Zs))/(a3*(X[i]-Xs)+b3*(Y[i]-Ys)+c3*(Z[i]-Zs))+y0;
		}
		
    	//計算誤差方程式的系數和常數項,組成誤差方程式
    	for(i=0;i<4;i++)
		{
/*	    	A[2*i][0]=(a1*f+a3*x_x[i])/ZZ[i];
	    	A[2*i][1]=(b1*f+b3*x_x[i])/ZZ[i];
	    	A[2*i][2]=(c1*f+c3*x_x[i])/ZZ[i];
		    A[2*i+1][0]=(a2*f+a3*y_y[i])/ZZ[i];
		    A[2*i+1][1]=(b2*f+b3*y_y[i])/ZZ[i];
		    A[2*i+1][2]=(c2*f+c3*y_y[i])/ZZ[i];
		    A[2*i][3]=y_y[i]*sin(w)-(x_x[i]*(x_x[i]*cos(k)-y_y[i]*sin(k))/f+f*cos(k))*cos(w);
		    A[2*i][4]=-f*sin(k)-x_x[i]*(x_x[i]*sin(k)+y_y[i]*cos(k))/f;
		    A[2*i][5]=y_y[i];
		    A[2*i+1][3]=-x_x[i]*sin(w)-((x_x[i]*cos(k)-y_y[i]*sin(k))*y_y[i]/f-f*sin(k))*cos(w);
	    	A[2*i+1][4]=-f*cos(k)-(x_x[i]*sin(k)+y_y[i]*cos(k))*y_y[i]/f;
		    A[2*i+1][5]=-x_x[i];
		    L[2*i][0]=x[i]-x_x[i];
		    L[2*i+1][0]=y[i]-y_y[i];
*/	
			A[2*i][0]=(a1*f+a3*(x[i]-x0))/ZZ[i];
	    	A[2*i][1]=(b1*f+b3*(x[i]-x0))/ZZ[i];
	    	A[2*i][2]=(c1*f+c3*(x[i]-x0))/ZZ[i];
		    A[2*i+1][0]=(a2*f+a3*(y[i]-y0))/ZZ[i];
		    A[2*i+1][1]=(b2*f+b3*(y[i]-y0))/ZZ[i];
		    A[2*i+1][2]=(c2*f+c3*(y[i]-y0))/ZZ[i];
		    A[2*i][3]=(y[i]-y0)*sin(w)-((x[i]-x0)*((x[i]-x0)*cos(k)-y[i]*sin(k))/f+f*cos(k))*cos(w);
		    A[2*i][4]=-f*sin(k)-(x[i]-x0)*((x[i]-x0)*sin(k)+(y[i]-y0)*cos(k))/f;
		    A[2*i][5]=y[i]-y0;
		    A[2*i+1][3]=-(x[i]-x0)*sin(w)-(((x[i]-x0)*cos(k)-(y[i]-y0)*sin(k))*(y[i]-y0)/f-f*sin(k))*cos(w);
	    	A[2*i+1][4]=-f*cos(k)-((x[i]-x0)*sin(k)+y[i]*cos(k))*(y[i]-y0)/f;
		    A[2*i+1][5]=-(x[i]-x0);
		    L[2*i][0]=x[i]-x_x[i];
		    L[2*i+1][0]=y[i]-y_y[i];

		}		

		for(i=0;i<4;i++)
			cout<<x_x[i]<<endl;
		cout<<endl;
		for(i=0;i<4;i++)
			cout<<y_y[i]<<endl;
		cout<<endl;
		for(i=0;i<8;i++)
			cout<<L[i][0]<<endl;
		cout<<endl;
    	//計算法方程的系數矩陣
		transpose(*A,*AT,8,6);
		plus(*AT,*A,*ATA,6,8,8,6);
		inverse(*ATA,*ATA_1,6,6);
		plus(*ATA_1,*AT,*ATL,6,6,6,8);
		plus(*ATL,*L,*DX,6,8,8,1);


		dXs=DX[0][0];
		dYs=DX[1][0];
		dZs=DX[2][0];
		dfai=DX[3][0];
		dw=DX[4][0];
		dk=DX[5][0];
		
    	Xs+=dXs;
    	Ys+=dYs;
    	Zs+=dZs;
    	fai+=dfai;
    	w+=dw;
    	k+=dk;

	
    	if(num>=100)      //迭代次數超過100次,退出
    		break;
	}
	cout<<"外方位元素為:"<<endl;
	cout<<"Xs:"<<Xs<<"  Ys:"<<Ys<<"  Zs:"<<Zs<<"  fai:"<<fai<<"  w:"<<w<<"  k:"<<k<<endl<<endl;
	
	double R[3][3]={a1,a2,a3,b1,b2,b3,c1,c2,c3};
	cout<<"旋轉矩陣為:"<<endl;
	for(i=0;i<3;i++)
	{
		for(j=0;j<3;j++)
			cout<<R[i][j]<<"  "; 
		cout<<endl;
	}
	
	for(i=0;i<8;i++)
		v+=L[i][0]*L[i][0];
	//cout<<v<<endl;
	m0=sqrt(v/(2*4-6));
	cout<<"dXs,dYs,dZs,dfai,dw,dk的精度分別是:"<<endl;
	for(i=0;i<6;i++)
	{
		m[i]=sqrt(ATA_1[i][i])*m0;
	    cout<<m[i]<<endl;
	}
	
}





















?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩三级电影网址| 国产午夜亚洲精品不卡| 成人免费精品视频| 国产成人精品一区二| 国产激情视频一区二区三区欧美| 久久精品国产77777蜜臀| 丝袜美腿高跟呻吟高潮一区| 亚洲成人动漫精品| 久久精品国产99国产| 国产精品一区二区黑丝| 男女性色大片免费观看一区二区| 喷白浆一区二区| 午夜精品久久久久久久99樱桃| 日本亚洲天堂网| av午夜精品一区二区三区| 欧美日韩高清在线播放| 免费高清在线视频一区·| 日韩国产欧美三级| 在线视频亚洲一区| 国产精品拍天天在线| 成人听书哪个软件好| 欧美一区二区三区视频免费播放| 国产精品久久毛片| 成人动漫一区二区在线| 日韩毛片在线免费观看| 色偷偷88欧美精品久久久| 国产精品美女一区二区三区 | 欧美mv日韩mv国产网站app| 亚洲欧美日本在线| 在线观看欧美黄色| 亚洲一级片在线观看| 欧洲视频一区二区| 午夜精品国产更新| 91精品国产综合久久精品app| 日韩不卡在线观看日韩不卡视频| 欧美一区三区二区| 国产麻豆精品95视频| 亚洲欧洲日韩女同| 欧美色综合天天久久综合精品| 亚洲美女一区二区三区| 欧美精选午夜久久久乱码6080| 日本成人中文字幕在线视频| 精品91自产拍在线观看一区| 91亚洲大成网污www| 日韩高清不卡在线| 国产日韩在线不卡| 欧美日韩免费在线视频| 国产一区在线观看麻豆| 亚洲一区二区在线视频| 久久久精品人体av艺术| 欧美日本韩国一区二区三区视频| 国产一区二区三区四区五区入口 | 久久精品视频免费观看| 制服丝袜亚洲色图| 色噜噜狠狠成人中文综合| 国产在线视频一区二区| 亚洲成a人v欧美综合天堂下载| 国产精品久久久久精k8| 中文一区一区三区高中清不卡| 欧美日韩一区二区在线观看| 成人在线视频首页| 国产成人自拍网| 精品一区二区在线观看| 日韩国产高清在线| 青青草国产成人99久久| 免费日本视频一区| 五月综合激情网| 亚洲成人动漫在线免费观看| 夜夜揉揉日日人人青青一国产精品| 欧美国产成人在线| 1区2区3区国产精品| 最新久久zyz资源站| 亚洲精品日日夜夜| 亚洲va欧美va人人爽| 国内久久婷婷综合| av综合在线播放| 欧美日韩一区二区三区四区五区| 欧美区在线观看| 国产精品色在线| 天堂成人免费av电影一区| 久久精品99国产国产精| 国产电影一区在线| 欧美日韩美女一区二区| 欧美国产日韩一二三区| 亚洲成人中文在线| 成人午夜电影久久影院| 欧美成人三级电影在线| 中文字幕高清一区| 美国三级日本三级久久99| 在线精品国精品国产尤物884a| 久久噜噜亚洲综合| 麻豆精品视频在线观看视频| 99精品在线免费| 国产三级欧美三级| 美女一区二区视频| 欧美色综合网站| 亚洲激情在线激情| 国产成人精品一区二区三区四区 | 日本一不卡视频| 欧美精品自拍偷拍动漫精品| 久久久精品蜜桃| 精品无码三级在线观看视频 | 成人av网站免费| 久久久精品蜜桃| 国产一区二区伦理| 久久蜜臀中文字幕| 成人sese在线| 亚洲1区2区3区4区| 91精品午夜视频| 婷婷丁香激情综合| 欧美电影免费观看高清完整版在线| 丝袜国产日韩另类美女| 精品国产乱码久久久久久闺蜜| 蜜桃免费网站一区二区三区| 日韩一区二区不卡| 成人激情文学综合网| 一区二区三区不卡在线观看| 精品视频在线免费| 国产一区二区成人久久免费影院 | 在线观看亚洲精品| 美女视频黄免费的久久 | 成人av手机在线观看| 亚洲一区在线视频| 久久精品人人爽人人爽| 在线不卡欧美精品一区二区三区| 国产一区视频导航| 石原莉奈在线亚洲三区| 综合久久久久久久| 欧美mv和日韩mv国产网站| 97se亚洲国产综合自在线不卡| 亚洲午夜一二三区视频| 久久嫩草精品久久久久| 欧美精品一二三| 色婷婷综合在线| proumb性欧美在线观看| 精品在线观看免费| 国产福利一区二区三区视频在线 | 久久综合九色综合欧美亚洲| 欧美视频在线播放| 99在线视频精品| 波多野结衣91| 成人午夜私人影院| 成人伦理片在线| 国产精品自拍一区| 国产成人鲁色资源国产91色综| 久久99精品久久久| 国产一区二区不卡| 国产盗摄精品一区二区三区在线| 日本欧美在线观看| 国产麻豆成人传媒免费观看| 国产馆精品极品| 成人av片在线观看| 欧洲国产伦久久久久久久| 制服.丝袜.亚洲.中文.综合| 日韩午夜在线观看视频| 国产日产亚洲精品系列| 亚洲欧美偷拍另类a∨色屁股| 亚洲在线视频网站| 麻豆91在线看| 色综合一区二区三区| 欧美一区二区三区人| 久久久久久久久久久久久女国产乱| 中文字幕第一页久久| 亚洲成人av中文| 日本韩国欧美三级| 欧美国产一区视频在线观看| 亚洲国产精品影院| 色欲综合视频天天天| 日韩免费视频一区二区| 一区二区三区中文字幕电影 | 亚洲国产精品久久艾草纯爱| 国产综合成人久久大片91| 在线观看视频91| 国产蜜臀97一区二区三区 | 日韩美女视频19| 国产a精品视频| 日韩美女主播在线视频一区二区三区| 亚洲欧美在线视频| 国产传媒久久文化传媒| 久久综合色之久久综合| 日韩成人午夜电影| 欧美伊人久久大香线蕉综合69| 国产精品全国免费观看高清 | 亚洲女与黑人做爰| av网站一区二区三区| 国产精品美女视频| 成人免费福利片| 亚洲在线观看免费| 欧美日本一道本在线视频| 亚洲图片欧美色图| 51精品秘密在线观看| 日韩电影在线免费观看| 日韩视频在线永久播放| 日本亚洲最大的色成网站www| 欧美一区二区在线不卡| 精品午夜久久福利影院 | 欧美一级夜夜爽| 成人综合在线网站| 午夜欧美在线一二页| 亚洲精品一区二区精华|