|
|
|
@@ -10,6 +10,10 @@ import android.content.Intent; |
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Handler;
|
|
|
|
|
|
|
|
import android.text.SpannableString;
|
|
|
|
|
|
|
|
import android.text.style.TabStopSpan;
|
|
|
|
|
|
|
|
import android.view.Gravity;
|
|
|
|
import android.view.Menu;
|
|
|
|
import android.view.MenuItem;
|
|
|
|
@@ -75,6 +79,7 @@ public class RBSMainActivity extends Activity implements ChooseArcherySetupDlgDi |
|
|
|
private static final int MIN_DISTANCE = 50;
|
|
|
|
private static final double CENTI = 0.01;
|
|
|
|
private static final double MILLI = 0.001;
|
|
|
|
private static final String TAB = "\u0009";
|
|
|
|
|
|
|
|
private ViewFlipper viewFlipper;
|
|
|
|
private ScrollView paramsScrollView;
|
|
|
|
@@ -677,6 +682,11 @@ public class RBSMainActivity extends Activity implements ChooseArcherySetupDlgDi |
|
|
|
this.scSightSpinner.setSelectedSight(archerySetup.getSight());
|
|
|
|
this.scSightSpinner.fireSelectionChangedEvent();
|
|
|
|
this.scVertScaleMiddleTxtFld.setText(DF.format(archerySetup.getSightVertSkalaMiddle()));
|
|
|
|
|
|
|
|
this.airTemperatureTxtFld.setText("25");
|
|
|
|
this.airRelativeHumidityTxtFld.setText("50");
|
|
|
|
this.shootingDistanzTxtFld.setText("18");
|
|
|
|
|
|
|
|
} else {
|
|
|
|
this.arrowDiameterTxtFld.setText("");
|
|
|
|
this.arrowDiameterTxtFld.setText("");
|
|
|
|
@@ -732,7 +742,9 @@ public class RBSMainActivity extends Activity implements ChooseArcherySetupDlgDi |
|
|
|
if (allParamFieldsValid()) {
|
|
|
|
|
|
|
|
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
|
|
|
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
|
|
|
|
if (getCurrentFocus() != null) {
|
|
|
|
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
CalculationTask calcTask = new CalculationTask();
|
|
|
|
TrajectoryCalculator calculator = new TrajectoryCalculator(Double.valueOf(this.arrowDiameterTxtFld.getText().toString().trim()) * MILLI, //
|
|
|
|
@@ -740,8 +752,8 @@ public class RBSMainActivity extends Activity implements ChooseArcherySetupDlgDi |
|
|
|
Double.valueOf(this.arrowWeightTxtFld.getText().toString().trim()) * MILLI, //
|
|
|
|
Double.valueOf(this.arrowV0TxtFld.getText().toString().trim()), //
|
|
|
|
Double.valueOf(this.shootingDistanzTxtFld.getText().toString().trim()), //
|
|
|
|
Double.valueOf(this.arrowNockHeightTxtFld.getText().toString().trim())
|
|
|
|
- Double.valueOf(this.targetCenterHeightTxtFld.getText().toString().trim()), //
|
|
|
|
Double.valueOf(this.targetCenterHeightTxtFld.getText().toString().trim())
|
|
|
|
- Double.valueOf(this.arrowNockHeightTxtFld.getText().toString().trim()), //
|
|
|
|
Double.valueOf(this.airTemperatureTxtFld.getText().toString().trim()), //
|
|
|
|
Double.valueOf(this.airRelativeHumidityTxtFld.getText().toString().trim())
|
|
|
|
* CENTI, //
|
|
|
|
@@ -767,25 +779,34 @@ public class RBSMainActivity extends Activity implements ChooseArcherySetupDlgDi |
|
|
|
this.startAngle = startAngle;
|
|
|
|
|
|
|
|
this.flightCurveTxtFld.setText("");
|
|
|
|
this.flightCurveTxtFld.append("Abschusswinkel:\t" + DF_FC.format(startAngle) + " °\n");
|
|
|
|
this.flightCurveTxtFld.append("Max. Höhe der Flugbahn:\t" + DF_FC.format(maxHCurve[0])
|
|
|
|
this.flightCurveTxtFld.append("Abschusswinkel:" + TAB + DF_FC.format(startAngle) + " °\n");
|
|
|
|
this.flightCurveTxtFld.append("Max. Höhe der Flugbahn:" + TAB + DF_FC.format(maxHCurve[0])
|
|
|
|
+ " m / " + DF_FC.format(maxHCurve[0] + Double.valueOf(this.arrowNockHeightTxtFld.getText().toString().trim()))
|
|
|
|
+ " m, [t = " + DF_FC.format(maxHCurve[1]) + " sec]\n");
|
|
|
|
this.flightCurveTxtFld.append("Flugzeit:\t\t"
|
|
|
|
+ " m, [t = " + DF_FC.format(maxHCurve[1]) + " s]\n");
|
|
|
|
this.flightCurveTxtFld.append("Flugzeit:" + TAB + TAB
|
|
|
|
+ DF_FC.format(flightCurve[flightCurve.length - 1][TrajectoryCalculator.IDX_T])
|
|
|
|
+ " sec\n\n");
|
|
|
|
this.flightCurveTxtFld.append("t [sec]\tVx [m/s]\tVy [m/s]\tx [m]\ty [m]\n\n");
|
|
|
|
|
|
|
|
for (int i = 0; i < flightCurve.length; i++) {
|
|
|
|
Double[] r1 = flightCurve[i];
|
|
|
|
StringBuffer line = new StringBuffer();
|
|
|
|
line.append(DF_FC.format(r1[TrajectoryCalculator.IDX_T]) + "\t"
|
|
|
|
+ DF_FC.format(r1[TrajectoryCalculator.IDX_VX]) + "\t"
|
|
|
|
+ DF_FC.format(r1[TrajectoryCalculator.IDX_VY]) + "\t"
|
|
|
|
+ DF_FC.format(r1[TrajectoryCalculator.IDX_X]) + "\t"
|
|
|
|
+ DF_FC.format(r1[TrajectoryCalculator.IDX_Y]) + "\n");
|
|
|
|
this.flightCurveTxtFld.append(line.toString());
|
|
|
|
}
|
|
|
|
|
|
|
|
SpannableString line = new SpannableString("t [sec]\tVx [m/s]\tVy [m/s]\tx [m]\ty [m]\n\n");
|
|
|
|
line.setSpan(new TabStopSpan.Standard(100), 7, 9, 0);
|
|
|
|
line.setSpan(new TabStopSpan.Standard(200), 17, 19, 0);
|
|
|
|
line.setSpan(new TabStopSpan.Standard(300), 27, 29, 0);
|
|
|
|
line.setSpan(new TabStopSpan.Standard(400), 34, 36, 0);
|
|
|
|
this.flightCurveTxtFld.append(line);
|
|
|
|
|
|
|
|
|
|
|
|
// this.flightCurveTxtFld.append("t [sec]" + TAB + TAB + "Vx [m/s]" + TAB + TAB + "Vy [m/s]" + TAB + TAB + "x [m]" + TAB + TAB + "y [m]\n\n");
|
|
|
|
//
|
|
|
|
// for (int i = 0; i < flightCurve.length; i++) {
|
|
|
|
// Double[] r1 = flightCurve[i];
|
|
|
|
// StringBuffer line = new StringBuffer();
|
|
|
|
// line.append(DF_FC.format(r1[TrajectoryCalculator.IDX_T]) + TAB + TAB
|
|
|
|
// + DF_FC.format(r1[TrajectoryCalculator.IDX_VX]) + TAB + TAB + TAB
|
|
|
|
// + DF_FC.format(r1[TrajectoryCalculator.IDX_VY]) + TAB + TAB + TAB + TAB
|
|
|
|
// + DF_FC.format(r1[TrajectoryCalculator.IDX_X]) + TAB + TAB
|
|
|
|
// + DF_FC.format(r1[TrajectoryCalculator.IDX_Y]) + "\n");
|
|
|
|
// this.flightCurveTxtFld.append(line.toString());
|
|
|
|
// }
|
|
|
|
|
|
|
|
calculateSettings();
|
|
|
|
|
|
|
|
@@ -817,8 +838,8 @@ public class RBSMainActivity extends Activity implements ChooseArcherySetupDlgDi |
|
|
|
Double a = Double.valueOf(this.bowPulloutTxtFld.getText().toString()) * 10;
|
|
|
|
Double heVs = this.scHeVSSpinner.getVisibility() == View.VISIBLE ? Double.valueOf(this.scHeVSSpinner.getSelectedItem().toString()) : Double.valueOf(this.scHeVSTxtFld.getText().toString());
|
|
|
|
Double lhNA = this.selectedArcherySetup.getHNA() * 10;
|
|
|
|
Double dltH = (Double.valueOf(this.arrowNockHeightTxtFld.getText().toString())
|
|
|
|
- Double.valueOf(this.targetCenterHeightTxtFld.getText().toString())) * Math.pow(10, 3);
|
|
|
|
Double dltH = (Double.valueOf(this.targetCenterHeightTxtFld.getText().toString())
|
|
|
|
- Double.valueOf(this.arrowNockHeightTxtFld.getText().toString())) * Math.pow(10, 3);
|
|
|
|
Double ldistH = Double.valueOf(this.shootingDistanzTxtFld.getText().toString()) * Math.pow(10, 3);
|
|
|
|
Double minSkala = this.scVertScaleRngTxtFld.getText().toString().contains("-") ? Double.valueOf(this.scVertScaleRngTxtFld.getText().toString().substring(0,
|
|
|
|
this.scVertScaleRngTxtFld.getText().toString().indexOf('-'))) : 0d;
|