Init
This commit is contained in:
129
gktogk.cpp
Normal file
129
gktogk.cpp
Normal file
@@ -0,0 +1,129 @@
|
||||
#include "gktogk.h"
|
||||
#include "ui_gktogk.h"
|
||||
|
||||
GKtoGK::GKtoGK(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::GKtoGK)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
|
||||
((Widget*)parent)->changeOpenWidget(this);
|
||||
}
|
||||
|
||||
GKtoGK::~GKtoGK()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void GKtoGK::on_pushButton_2_clicked()
|
||||
{
|
||||
close();
|
||||
}
|
||||
|
||||
void GKtoGK::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
((Widget*)parent())->clearOpenWidget();
|
||||
event->accept();
|
||||
}
|
||||
|
||||
void GKtoGK::on_pushButton_clicked()
|
||||
{
|
||||
int nZone1, nZone2;
|
||||
bool south;
|
||||
|
||||
int XL, YL;
|
||||
int XL1, YL1;
|
||||
|
||||
|
||||
double CB2=8376121.0;
|
||||
double CB4=590.42;
|
||||
double CB6=1.68;
|
||||
|
||||
double CA2=5333.5419;
|
||||
double CA4=4.84339;
|
||||
double CA6=0.007622;
|
||||
|
||||
double A1,A2,A3,B1,B2,B3,C1,C2,C3,D1,D2,D3,
|
||||
P,PU,G,E,EU,FI,L0,TGA,TGL,U,V,TG,SFI,
|
||||
EL,TGE,THP;
|
||||
|
||||
|
||||
nZone1 = ui->lineEdit->text().toInt();
|
||||
south = ui->checkBox->isChecked();
|
||||
|
||||
XL = ui->lineEdit_2->text().toInt();
|
||||
YL = ui->lineEdit_3->text().toInt();
|
||||
|
||||
nZone2 = ui->lineEdit_4->text().toInt();
|
||||
// đŕń÷ĺň
|
||||
|
||||
V=YL-500000.0;
|
||||
U=XL/6367558.497;
|
||||
V=V/6367558.497;
|
||||
A1=sin(2.0*U);
|
||||
B1=cos(2.0*U);
|
||||
A2=2.0*A1*B1;
|
||||
B2=1.0-2.0*A1*A1;
|
||||
A3=A1*B2+A2*B1;
|
||||
B3=B1*B2-A1*A2;
|
||||
C1=sinh(2.0*V);
|
||||
D1=sqrt(1.0+C1*C1);
|
||||
C2=2.0*C1*D1;
|
||||
D2=1.0+2.0*C1*C1;
|
||||
C3=C1*D2+C2*D1;
|
||||
D3=C1*C2+D1*D2;
|
||||
E=U-(CB2*A1*D1+CB4*A2*D2+CB6*A3*D3)*0.0000000001;
|
||||
P=V-(CB2*B1*C1+CB4*B2*C2+CB6*B3*C3)*0.0000000001;
|
||||
EU=10000000000.0-(2.0*CB2*B1*D1+4.0*CB4*B2*D2+
|
||||
6.0*CB6*B3*D3);
|
||||
PU=(2.0*CB2*A1*C1+4.0*CB4*A2*C2+6.0*CB6*A3*C3);
|
||||
SFI=sin(E)/cosh(P);
|
||||
TGL=sinh(P)/cos(E);
|
||||
TGA=SFI*TGL;
|
||||
FI=asin(SFI);
|
||||
B=(5645.0*SFI*SFI-531245.0)*SFI*SFI;
|
||||
B=(B+67385254.0)*SFI*cos(FI)*0.0000000001;
|
||||
B=B+FI;
|
||||
TG=PU/EU;
|
||||
G=atan(TGA)+atan(TG);
|
||||
L=atan(TGL);
|
||||
L0=double(nZone1)*6.0-3.0;
|
||||
L0=L0*M_PI/180.0;
|
||||
L=L+L0;
|
||||
if (L<0.0) L=L+(2.0*M_PI);
|
||||
else if (L>(2.0*M_PI)) L=L-(2.0*M_PI);
|
||||
|
||||
|
||||
|
||||
L0=double(nZone2)*6.0-3.0;
|
||||
L0=L0*M_PI/180.0;
|
||||
EL=L-L0;
|
||||
FI=(2624.0*sin(B)*sin(B)+372834.0)*sin(B)*sin(B);
|
||||
FI=B-((FI+66934216.0)*sin(B)*cos(B)*0.0000000001);
|
||||
TGE=tan(FI)/cos(EL);
|
||||
E=atan(TGE);
|
||||
THP=cos(FI)*sin(EL);
|
||||
P=0.5*log((1.0+THP)/(1.0-THP));
|
||||
A1=sin(2.0*E);
|
||||
B1=cos(2.0*E);
|
||||
C1=sinh(2.0*P);
|
||||
D1=cosh(2.0*P);
|
||||
A2=2.0*A1*B1;
|
||||
B2=1.0-2.0*A1*A1;
|
||||
C2=2.0*C1*D1;
|
||||
D2=1.0+2.0*C1*C1;
|
||||
A3=A1*B2+A2*B1;
|
||||
B3=B1*B2-A1*A2;
|
||||
C3=C1*D2+C2*D1;
|
||||
D3=D1*D2+C1*C2;
|
||||
|
||||
XL1 = (int)(6367558.497*E+CA2*A1*D1+CA4*A2*D2+CA6*A3*D3);
|
||||
if (XL1<0) XL1=-XL1;
|
||||
|
||||
YL1 = (int)(6367558.497*P+CA2*B1*C1+CA4*B2*C2+CA6*B3*C3 + 500000.0);
|
||||
|
||||
|
||||
ui->lineEdit_5->setText(QString::number(XL1));
|
||||
ui->lineEdit_6->setText(QString::number(YL1));
|
||||
}
|
||||
Reference in New Issue
Block a user