private void OnBerechnenClick(object sender, RoutedEventArgs e) { try { var winkel = Winkel.FromDeg(double.Parse(AbsprungWinkelTextBox.Text)); var geschwindigkeit = Geschwindigkeit.FromKilometerProStunde(double.Parse(AbsprungGeschwindigkeitTextBox.Text)); var schanzenHöhe = Länge.FromCentimeter(double.Parse(AbsprungHöheTextBox.Text)); var schanze = Schanze.Create(schanzenHöhe, winkel); var flugbahn = Flugbahn.Create(schanze, geschwindigkeit); var setting = SettingViewModel.Create(schanze, flugbahn); _viewModel.Settings.Add(setting); _viewModel.SelectedSetting = setting; } catch (Exception) { // TODO Fehler visualisieren } }
public static Flugbahn Create( Schanze schanze, Geschwindigkeit absprungGeschwindigkeit) { var weite = Wurfparabel.Weite( v0: absprungGeschwindigkeit.MeterProSekunde, y0: schanze.Höhe.Meter, alpha: schanze.Absprungwinkel.Rad); var scheitelpunktX = Wurfparabel.ScheitelpunktX( v0: absprungGeschwindigkeit.MeterProSekunde, y0: schanze.Höhe.Meter, alpha: schanze.Absprungwinkel.Rad ); var höhe = Wurfparabel.ScheitelpunktY( v0: absprungGeschwindigkeit.MeterProSekunde, y0: schanze.Höhe.Meter, alpha: schanze.Absprungwinkel.Rad); var aufprallWinkel = Wurfparabel.AufprallWinkel( v0: absprungGeschwindigkeit.MeterProSekunde, y0: schanze.Höhe.Meter, alpha: schanze.Absprungwinkel.Rad ); var aufprallGeschwindigkeit = Wurfparabel.AufprallGeschwindigkeit( v0: absprungGeschwindigkeit.MeterProSekunde, y0: schanze.Höhe.Meter, alpha: schanze.Absprungwinkel.Rad ); return(new Flugbahn( absprungHöhe: schanze.Höhe, absprungWinkel: schanze.Absprungwinkel, absprungGeschwindigkeit: absprungGeschwindigkeit, sprungWeite: Länge.FromMeter(weite), scheitelpunktX: Länge.FromMeter(scheitelpunktX), scheitelpunktY: Länge.FromMeter(höhe), aufprallWinkel: Winkel.FromRad(aufprallWinkel), aufprallGeschwindigkeit: Geschwindigkeit.FromMeterProSekunde(aufprallGeschwindigkeit), scale: 1)); }
Flugbahn(Länge absprungHöhe, Winkel absprungWinkel, Geschwindigkeit absprungGeschwindigkeit, Länge sprungWeite, Länge scheitelpunktX, Länge scheitelpunktY, Winkel aufprallWinkel, Geschwindigkeit aufprallGeschwindigkeit, double scale) { _absprungHöhe = absprungHöhe; AbsprungWinkel = absprungWinkel; AbsprungGeschwindigkeit = absprungGeschwindigkeit; _sprungWeite = sprungWeite; _scheitelpunktY = scheitelpunktY; _scheitelpunktX = scheitelpunktX; Scale = scale; AufprallWinkel = aufprallWinkel; AufprallGeschwindigkeit = aufprallGeschwindigkeit; }
public SceneViewModel() { _settings = new ObservableCollection <SettingViewModel>(); _settings.CollectionChanged += OnSettingCollectionChanged; if (DesignerProperties.GetIsInDesignMode(new DependencyObject())) { var winkel = Winkel.FromDeg(22); var geschwindigkeit = Geschwindigkeit.FromKilometerProStunde(20); var schanzenHöhe = Länge.FromCentimeter(16); var schanze = Berechnung.Schanze.Create(schanzenHöhe, winkel); var flugbahn = Berechnung.Flugbahn.Create(schanze, geschwindigkeit); var model = new SettingViewModel(schanze, flugbahn) { RenderMetrics = true }; Settings.Add(model); } }