/// <summary> /// 空気抵抗のある自由落下系に対して運動方程式を1ステップ解くクラスのコンストラクタ /// </summary> /// <param name="sd">保存された設定情報のオブジェクト</param> /// <param name="altitudeLineSeries">経過時間-高度グラフのプロット用のLineSeries</param> /// <param name="velocityLineSeries">経過時間-速度グラフのプロット用のLineSeries</param> /// <param name="dt">常微分方程式の数値解法の時間刻み(秒)</param> /// <param name="tintervalgraphplot">グラフプロット用の時間間隔(秒)</param> /// <param name="eps">常微分方程式の数値解法の許容誤差</param> /// <param name="m">球の質量(kg)</param> /// <param name="r">球の半径(m)</param> /// <param name="h0">初期高度(m)</param> /// <param name="v0">初期速度(m/s)</param> /// <param name="odesolver">常微分方程式の数値解法</param> internal FreefallSolveEom(SaveDataManage.SaveData sd, LineSeries altitudeLineSeries, LineSeries velocityLineSeries, Double dt, Double tintervalgraphplot, Double eps, Double m, Double r, Double h0, Double v0, Int32 odesolver) { this.altitudeLineSeries = altitudeLineSeries; this.velocityLineSeries = velocityLineSeries; if (sd.IsOutputToCsvFile) { Double.TryParse(sd.IntervalOfOutputToCsvFile, out Double tintervaloutputcsv); UnsafeNativeMethods.FreefallInit(dt, tintervalgraphplot, tintervaloutputcsv, sd.CsvFileNameFullPath, eps, m, r, h0, v0, odesolver); } else { UnsafeNativeMethods.FreefallInit(dt, tintervalgraphplot, eps, m, r, h0, v0, odesolver); } }
/// <summary> /// コンストラクタ /// </summary> /// <param name="sd">ファイルに保存される設定情報データのオブジェクト</param> internal MainWindowViewModel(SaveDataManage.SaveData sd) { this.sd = sd; this.IntervalOfGraphPlot = sd.IntervalOfGraphPlot; this.DiameterOfSphere = sd.DiameterOfSphere; this.InitialAltitudeOfSphere = sd.InitialAltitudeOfSphere; this.InitialVelocityOfSphere = sd.InitialVelocityOfSphere; this.MassOfSphere = sd.MassOfSphere; this.InitializePlotModel(); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="sd">保存された設定情報のオブジェクト</param> internal SettingWindow(SaveDataManage.SaveData sd) { this.InitializeComponent(); this.sd = sd; }