def btnConstruct_Click(self): flag = FlightPlanBaseDlg.btnConstruct_Click(self) if not flag: return value = Speed(float(self.parametersPanel.txtIas.text()),SpeedUnits.KTS); if (self.parametersPanel.chbDeparture.isChecked()): value = value + (value / 10); altitude = Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT); value1 = float(self.parametersPanel.txtIsa.text()); num1 = float (self.parametersPanel.txtBankAngle.text()); self.speedP = self.parametersPanel.pnlWind.Value; self.num2P = Unit.ConvertDegToRad(float(self.parametersPanel.txtTrackRadial.Value)); self.orientationTypeP = self.parametersPanel.cmbOrientation.currentText(); speed1 = Speed.smethod_0(value, value1, altitude); numList = [] distance = Distance.smethod_1(speed1, num1, numList); self.numP = numList[0] self.metresP = distance.Metres; self.originP = Point3D.get_Origin(); self.point3dP = Point3D.get_Origin(); self.origin1P = Point3D.get_Origin(); self.polylineP = PolylineArea(); self.flagP = True; define._canvas.setMapTool(self.CaptureCoordTool)
def __init__(self, point3d_0, double_0, speed_0, speed_1, double_1, turnDirection_0): ### point3d_0 : start point ### double_0 is inboundTrack angle(radian). ### speed_0 is speed of airplane(TAS). ### speed_1 is speed of wind. ### double_1 is value of bank anlge(float). self.Start = [Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0)] self.Middle = [Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0)] self.Finish = [Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0)] self.Center = [Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0)] self.Radius = [Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0)] self.Direction = turnDirection_0 return1 = [] distance = Distance.smethod_1(speed_0, double_1, return1) # out num) num = return1[0] metres = distance.Metres metresPerSecond = 45 / num * speed_1.MetresPerSecond metresPerSecond1 = 90 / num * speed_1.MetresPerSecond metresPerSecond2 = 135 / num * speed_1.MetresPerSecond num2 = 180 / num * speed_1.MetresPerSecond metresPerSecond3 = 225 / num * speed_1.MetresPerSecond num3 = 270 / num * speed_1.MetresPerSecond if turnDirection_0 != TurnDirection.Left: num1 = 1 else: num1 = -1 point3d = MathHelper.distanceBearingPoint(point3d_0, num1 * math.pi / 2 + double_0, metres) self.Start[0] = point3d_0 self.Middle[0] = MathHelper.distanceBearingPoint(point3d, -1 * num1 * (math.pi / 4) + double_0, metres + metresPerSecond) self.Finish[0] = MathHelper.distanceBearingPoint(point3d, double_0, metres + metresPerSecond1) self.Start[1] = self.Finish[0] self.Middle[1] = MathHelper.distanceBearingPoint(point3d, num1 * (math.pi / 4) + double_0, metres + metresPerSecond2) self.Finish[1] = MathHelper.distanceBearingPoint(point3d, num1 * math.pi / 2 + double_0, metres + num2) self.Start[2] = self.Finish[1] self.Middle[2] = MathHelper.distanceBearingPoint(point3d, num1 * (math.pi / 4) * 3 + double_0, metres + metresPerSecond3) self.Finish[2] = MathHelper.distanceBearingPoint(point3d, num1 * math.pi + double_0, metres + num3) self.Center[0] = MathHelper.smethod_68(self.Start[0], self.Middle[0], self.Finish[0]) self.Center[1] = MathHelper.smethod_68(self.Start[1], self.Middle[1], self.Finish[1]) self.Center[2] = MathHelper.smethod_68(self.Start[2], self.Middle[2], self.Finish[2]) self.Radius[0] = MathHelper.calcDistance(self.Center[0], self.Middle[0]) self.Radius[1] = MathHelper.calcDistance(self.Center[1], self.Middle[1]) self.Radius[2] = MathHelper.calcDistance(self.Center[2], self.Middle[2])