|
@@ -50,6 +50,8 @@ void MainWindow::on_pushButton_LonLatConvertRel_clicked()
|
|
double x_rel,y_rel,hdg_rel;
|
|
double x_rel,y_rel,hdg_rel;
|
|
double x_rel_raw,y_rel_raw;
|
|
double x_rel_raw,y_rel_raw;
|
|
|
|
|
|
|
|
+ double fDis;
|
|
|
|
+
|
|
lon_base = ui->lineEdit_2_Lon->text().toDouble();
|
|
lon_base = ui->lineEdit_2_Lon->text().toDouble();
|
|
lat_base = ui->lineEdit_2_Lat->text().toDouble();
|
|
lat_base = ui->lineEdit_2_Lat->text().toDouble();
|
|
heading_base = ui->lineEdit_2_Heading->text().toDouble();
|
|
heading_base = ui->lineEdit_2_Heading->text().toDouble();
|
|
@@ -62,6 +64,8 @@ void MainWindow::on_pushButton_LonLatConvertRel_clicked()
|
|
GaussProjCal(lon_base,lat_base,&x_base,&y_base);
|
|
GaussProjCal(lon_base,lat_base,&x_base,&y_base);
|
|
GaussProjCal(lon_test,lat_test,&x_test,&y_test);
|
|
GaussProjCal(lon_test,lat_test,&x_test,&y_test);
|
|
|
|
|
|
|
|
+ fDis = sqrt(pow(x_test - x_base,2) + pow(y_test - y_base,2));
|
|
|
|
+
|
|
x_rel_raw = x_test - x_base;
|
|
x_rel_raw = x_test - x_base;
|
|
y_rel_raw = y_test - y_base;
|
|
y_rel_raw = y_test - y_base;
|
|
|
|
|
|
@@ -79,7 +83,7 @@ void MainWindow::on_pushButton_LonLatConvertRel_clicked()
|
|
|
|
|
|
char strout[1000];
|
|
char strout[1000];
|
|
char strtem[100];
|
|
char strtem[100];
|
|
- snprintf(strout,1000,"Rel Value:\n");
|
|
|
|
|
|
+ snprintf(strout,1000," Rel Value:\n");
|
|
snprintf(strtem,100,"x:%6.3f\n",x_rel);strncat(strout,strtem,1000);
|
|
snprintf(strtem,100,"x:%6.3f\n",x_rel);strncat(strout,strtem,1000);
|
|
snprintf(strtem,100,"y:%6.3f\n",y_rel);strncat(strout,strtem,1000);
|
|
snprintf(strtem,100,"y:%6.3f\n",y_rel);strncat(strout,strtem,1000);
|
|
snprintf(strtem,100,"hdg:%11.9f\n",hdg_rel);strncat(strout,strtem,1000);
|
|
snprintf(strtem,100,"hdg:%11.9f\n",hdg_rel);strncat(strout,strtem,1000);
|
|
@@ -87,6 +91,21 @@ void MainWindow::on_pushButton_LonLatConvertRel_clicked()
|
|
snprintf(strtem,100,"x_raw:%6.3f\n",x_rel_raw);strncat(strout,strtem,1000);
|
|
snprintf(strtem,100,"x_raw:%6.3f\n",x_rel_raw);strncat(strout,strtem,1000);
|
|
snprintf(strtem,100,"y_raw:%6.3f\n",y_rel_raw);strncat(strout,strtem,1000);
|
|
snprintf(strtem,100,"y_raw:%6.3f\n",y_rel_raw);strncat(strout,strtem,1000);
|
|
|
|
|
|
|
|
+ snprintf(strtem,100,"\n Point Distance:\n");strncat(strout,strtem,1000);
|
|
|
|
+ snprintf(strtem,100,"Distance:%6.3f\n",fDis);strncat(strout,strtem,1000);
|
|
|
|
+
|
|
|
|
+ double R;
|
|
|
|
+
|
|
|
|
+ double theta = hdg_rel;
|
|
|
|
+ if(theta >M_PI) theta = 2.0*M_PI - theta;
|
|
|
|
+ theta = theta/2.0;
|
|
|
|
+ if(sin(theta)>0)
|
|
|
|
+ {
|
|
|
|
+ R = fDis/(2.0*sin(theta));
|
|
|
|
+ snprintf(strtem,100,"\n R:\n");strncat(strout,strtem,1000);
|
|
|
|
+ snprintf(strtem,100,"R:%6.3f\n",R);strncat(strout,strtem,1000);
|
|
|
|
+ }
|
|
|
|
+
|
|
ui->plainTextEdit_Rel->setPlainText(strout);
|
|
ui->plainTextEdit_Rel->setPlainText(strout);
|
|
|
|
|
|
}
|
|
}
|