⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qianfangjiaohuidoc.cpp

📁 前方交会解算像点坐标
💻 CPP
字号:
// qianfangjiaohuiDoc.cpp : implementation of the CQianfangjiaohuiDoc class
//

#include "stdafx.h"
#include "qianfangjiaohui.h"
#include "qianfangjiaohui1.h"
#include "qianfangjiaohuiDoc.h"
#include "Matrix.h"
#include "math.h"
#include "DIEDAI.h"

//#include "Matrix.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CQianfangjiaohuiDoc

IMPLEMENT_DYNCREATE(CQianfangjiaohuiDoc, CDocument)

BEGIN_MESSAGE_MAP(CQianfangjiaohuiDoc, CDocument)
	//{{AFX_MSG_MAP(CQianfangjiaohuiDoc)
	ON_COMMAND(ID_QIAN, OnQian)
	ON_BN_CLICKED(ID_jisuan, Onjisuan)
	ON_COMMAND(ID_DIEDAI, OnDiedai)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CQianfangjiaohuiDoc construction/destruction

CQianfangjiaohuiDoc::CQianfangjiaohuiDoc()
{
	// TODO: add one-time construction code here

}

CQianfangjiaohuiDoc::~CQianfangjiaohuiDoc()
{
}

BOOL CQianfangjiaohuiDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	// TODO: add reinitialization code here
	// (SDI documents will reuse this document)

	return TRUE;
}



/////////////////////////////////////////////////////////////////////////////
// CQianfangjiaohuiDoc serialization

void CQianfangjiaohuiDoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		// TODO: add storing code here
	}
	else
	{
		// TODO: add loading code here
	}
}

/////////////////////////////////////////////////////////////////////////////
// CQianfangjiaohuiDoc diagnostics

#ifdef _DEBUG
void CQianfangjiaohuiDoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CQianfangjiaohuiDoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CQianfangjiaohuiDoc commands

void CQianfangjiaohuiDoc::OnQian() 
{
	// TODO: Add your command handler code here
	
	Cqianfangjiaohui dlgdlg;
	dlgdlg.DoModal();	     	
}


void CQianfangjiaohuiDoc::Onjisuan() 
{
	// TODO: Add your control notification handler code here
/*	Cqianfangjiaohui dlg;	     
	
    angel_to_(dlg.m_Kappa_L,dlg.m_Kappa_L1 );
    angel_to_(dlg.m_Kappa_R,dlg.m_Kappa_R1 );
	angel_to_(dlg.m_Omega_L,dlg.m_Omega_L1 );
	angel_to_(dlg.m_Omega_R,dlg.m_Omega_R1 );
	angel_to_(dlg.m_Phi_L,dlg.m_Phi_L1 );
	angel_to_(dlg.m_Phi_R,dlg.m_Phi_R1 );


	double a11,a12,a13,b11,b12,b13,c11,c12,c13;
	double L11,L12,L13,L1x,L14,L15,L16,L1y;
	
	a11=cos(dlg.m_Phi_L1)*cos(dlg.m_Kappa_L1)-sin(dlg.m_Phi_L1)*sin(dlg.m_Omega_L1)*sin(dlg.m_Kappa_L1);
	a12=-cos(dlg.m_Phi_L1)*sin(dlg.m_Kappa_L1)-sin(dlg.m_Phi_L1)*sin(dlg.m_Omega_L1)*cos(dlg.m_Kappa_L1);
	a13=-sin(dlg.m_Phi_L1)*cos(dlg.m_Omega_L1);
	b11=cos(dlg.m_Omega_L1)*sin(dlg.m_Kappa_L1);
	b12=cos(dlg.m_Omega_L1)*cos(dlg.m_Kappa_L1);
	b13=-sin(dlg.m_Omega_L1);
	c11=sin(dlg.m_Phi_L1)*cos(dlg.m_Kappa_L1)+cos(dlg.m_Phi_L1)*sin(dlg.m_Omega_L1)*sin(dlg.m_Kappa_L1);
	c12=-sin(dlg.m_Phi_L1)*sin(dlg.m_Kappa_L1)+cos(dlg.m_Phi_L1)*sin(dlg.m_Omega_L1)*cos(dlg.m_Kappa_L1);
	c13=cos(dlg.m_Phi_L1)*cos(dlg.m_Omega_L1);

    L11=dlg.m_F_L*a11+(dlg.m_x_L-dlg.m_X0_L)*a13;
	L12=dlg.m_F_L*b11+(dlg.m_x_L-dlg.m_X0_L)*b13;
	L13=dlg.m_F_L*c11+(dlg.m_x_L-dlg.m_X0_L)*c13;
    L1x=dlg.m_F_L*a11*dlg.m_Xs_L+dlg.m_F_L*b11*dlg.m_Ys_L+dlg.m_F_L*c11*dlg.m_Zs_L+(dlg.m_x_L-dlg.m_X0_L)*a13*dlg.m_Xs_L+
        (dlg.m_x_L-dlg.m_X0_L)*b13*dlg.m_Ys_L+(dlg.m_x_L-dlg.m_X0_L)*c13*dlg.m_Zs_L;
    L14=dlg.m_F_L*a12+(dlg.m_y_L-dlg.m_Y0_L)*a13;
	L15=dlg.m_F_L*b12+(dlg.m_y_L-dlg.m_Y0_L)*b13;
	L16=dlg.m_F_L*c12+(dlg.m_y_L-dlg.m_Y0_L)*c13;
    L1y=dlg.m_F_L*a12*dlg.m_Xs_L+dlg.m_F_L*b12*dlg.m_Ys_L+dlg.m_F_L*c12*dlg.m_Zs_L+(dlg.m_y_L-dlg.m_Y0_L)*a13*dlg.m_Xs_L+
        (dlg.m_y_L-dlg.m_Y0_L)*b13*dlg.m_Ys_L+(dlg.m_y_L-dlg.m_Y0_L)*c13*dlg.m_Zs_L;
	
	double a21,a22,a23,b21,b22,b23,c21,c22,c23;
    double L21,L22,L23,L2x,L24,L25,L26,L2y;
    
	a21=cos(dlg.m_Phi_R1)*cos(dlg.m_Kappa_R1)-sin(dlg.m_Phi_R1)*sin(dlg.m_Omega_R1)*sin(dlg.m_Kappa_R1);
	a22=-cos(dlg.m_Phi_R1)*sin(dlg.m_Kappa_R1)-sin(dlg.m_Phi_R1)*sin(dlg.m_Omega_R1)*cos(dlg.m_Kappa_R1);
	a23=-sin(dlg.m_Phi_R1)*cos(dlg.m_Omega_R1);
	b21=cos(dlg.m_Omega_R1)*sin(dlg.m_Kappa_R1);
	b22=cos(dlg.m_Omega_R1)*cos(dlg.m_Kappa_R1);
	b23=-sin(dlg.m_Omega_R1);
	c21=sin(dlg.m_Phi_R1)*cos(dlg.m_Kappa_R1)+cos(dlg.m_Phi_R1)*sin(dlg.m_Omega_R1)*sin(dlg.m_Kappa_R1);
	c22=-sin(dlg.m_Phi_R1)*sin(dlg.m_Kappa_R1)+cos(dlg.m_Phi_R1)*sin(dlg.m_Omega_R1)*cos(dlg.m_Kappa_R1);
	c23=cos(dlg.m_Phi_R1)*cos(dlg.m_Omega_R1);

    L21=dlg.m_F_R*a21+(dlg.m_x_R-dlg.m_X0_R)*a23;
	L22=dlg.m_F_R*b21+(dlg.m_x_R-dlg.m_X0_R)*b23;
	L23=dlg.m_F_R*c21+(dlg.m_x_R-dlg.m_X0_R)*c23;
    L2x=dlg.m_F_R*a21*dlg.m_Xs_R+dlg.m_F_R*b21*dlg.m_Ys_R+dlg.m_F_R*c21*dlg.m_Zs_R+(dlg.m_x_R-dlg.m_X0_R)*a23*dlg.m_Xs_R+
        (dlg.m_x_R-dlg.m_X0_R)*b23*dlg.m_Ys_R+(dlg.m_x_R-dlg.m_X0_R)*c23*dlg.m_Zs_R;
    L24=dlg.m_F_R*a22+(dlg.m_y_R-dlg.m_Y0_R)*a23;
	L25=dlg.m_F_R*b22+(dlg.m_y_R-dlg.m_Y0_R)*b23;
	L26=dlg.m_F_R*c22+(dlg.m_y_R-dlg.m_Y0_R)*c23;
    L2y=dlg.m_F_R*a22*dlg.m_Xs_R+dlg.m_F_R*b22*dlg.m_Ys_R+dlg.m_F_R*c22*dlg.m_Zs_R+(dlg.m_y_R-dlg.m_Y0_R)*a23*dlg.m_Xs_R+
        (dlg.m_y_R-dlg.m_Y0_R)*b23*dlg.m_Ys_R+(dlg.m_y_R-dlg.m_Y0_R)*c23*dlg.m_Zs_R;
    
	double A1[3][3],L1[3];
	double X11[3];
	double X1,Y1,Z1;
        A1[0][0]=L11;
	    A1[0][1]=L12;
		A1[0][2]=L13;
		A1[1][0]=L14;
		A1[1][1]=L15;
		A1[1][2]=L16;
		A1[2][0]=L21;
		A1[2][1]=L22;
		A1[2][2]=L23;
        X11[0]=X1;
        X11[1]=Y1;
		X11[2]=Z1;
        L1[0]=L1x;
		L1[1]=L1y;
		L1[2]=L2x;
        InverMatrix(&A1[0][0], 3);
        MultMatrix(&A1[0][0],L1,X11, 3, 3, 1);



    double A[4][3],X22[3],L[4],V[4];
	double X2,Y2,Z2;
	    A[0][0]=L11;
	    A[0][1]=L12;
		A[0][2]=L13;
		A[1][0]=L14;
		A[1][1]=L15;
		A[1][2]=L16;
		A[2][0]=L21;
		A[2][1]=L22;
		A[2][2]=L23;
		A[3][0]=L24;
		A[3][1]=L25;
		A[3][2]=L26;
		X22[0]=X2;
        X22[1]=Y2;
		X22[2]=Z2;
        L[0]=L1x;
		L[1]=L1y;
		L[2]=L2x;
        L[3]=L2y;
		
		double AT[3][4],B[3][3],C[3][4];

        TranMatrix(&A[0][0], &AT[0][0], 4, 3);
        MultMatrix(&AT[0][0], &A[0][0],&B[3][3] ,3, 4, 3);
        InverMatrix( &B[0][0], 3);
        MultMatrix(&B[0][0], &AT[0][0],&C[3][4], 3, 3, 4);
		MultMatrix(&C[0][0], L,X22 ,3, 4, 1);
        
		double X,Y,Z;
		X = X11[0] + X22[0];
		Y = X11[1] + X22[1];
		Z = X11[2] + X22[2];
		
		dlg.m_X=X;
		dlg.m_Y=Y;
		dlg.m_Z=Z;
		*/
}

void CQianfangjiaohuiDoc::angel_to_(CString A,double B )
{
   /* double pi;
	pi=3.14159265;
	
     CString temp,s;
	 temp = A;
	 s = "";
	 int a,b,c,j;
	 j=0;
	 for(int i=0;i<temp.GetLength();i++)
	 {
		
	   if(temp[i]=='.')
	   {
	     j=i;
		 a=atoi(s);
		 break;
	   }
	   s+=temp[i];
       if(j!=0)
	   {
	    s="";
		s+=temp[j+1];
		s+=temp[j+2];
		b=atoi(s);
		s="";
		s+=temp[j+3];
		s+=temp[j+4];
		c=atoi(s);
	   }
      }
	 B=(a+(b/60)+(c/360))*pi/180;
	 */
}
void CQianfangjiaohuiDoc::OnDiedai() 
{
	// TODO: Add your command handler code here
	CDIEDAI dlg;
	dlg.DoModal();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -