public MainWindow() { InitializeComponent(); SourceValue.Text = sourceValue.ToString(); OutPutValue.Text = outputValue.ToString(); Density.Text = densityValue.ToString(); SourceUnit.ItemsSource = kinematicUnits; SourceUnit.SelectedValuePath = "Key"; SourceUnit.DisplayMemberPath = "Value"; OutPutUnit.ItemsSource = kinematicUnits; OutPutUnit.SelectedValuePath = "Key"; OutPutUnit.DisplayMemberPath = "Value"; DensityUnit.ItemsSource = densityUnits; DensityUnit.SelectedValuePath = "Key"; DensityUnit.DisplayMemberPath = "Value"; SourceUnit.SelectedIndex = 0; OutPutUnit.SelectedIndex = 1; DensityUnit.SelectedIndex = 0; sourceValueUnit = (visUnit)SourceUnit.SelectedIndex; outputValueUnit = (visUnit)OutPutUnit.SelectedIndex; densityValueUnit = (densityUnit)DensityUnit.SelectedIndex; sourceValueMode = mode.Kin; outputValueMode = mode.Kin; this.DensityPanel.IsEnabled = false; }
private void OutPutUnit_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (outputValueMode == mode.Kin) { outputValueUnit = (visUnit)OutPutUnit.SelectedIndex; } else { outputValueUnit = (visUnit)OutPutUnit.SelectedIndex + 100; } Calculate(); SourceValue.Focus(); }
private static double SecondCalculation(visUnit fUnit, double val2, double density, visUnit sUnit) { double result = 0.0; switch (sUnit) { case visUnit.St: result = val2; break; case visUnit.sSt: result = val2 * 100; break; case visUnit.m2sec: result = val2 * 0.0001; break; case visUnit.mm2sec: result = val2 * 100; break; case visUnit.inch2sec: result = val2 * 0.0001 * 1550.0031; break; case visUnit.ft2sec: result = val2 * 0.0001 * 1550.0031 / 144; break; case visUnit.paSec: result = val2 / 10000; break; case visUnit.P: result = val2 / 1000; break; case visUnit.sP: result = val2 / 10; break; case visUnit.kg_mh: result = val2 / 27.8; break; case visUnit.funt_ft_s: result = val2 / 14900; break; case visUnit.rein: result = val2 / 6890 * 10000; break; } if ((byte)fUnit < 99 && (byte)sUnit > 99) { result *= density; } return(result); }
public static double ViscosityTranslate(visUnit firstUnit, double firstValue, visUnit secUnit, double density, densityUnit denUnit, mode sourceMode, mode outputMode) { double normDensity = NormaliseDensity(density, denUnit); return(SecondCalculation(firstUnit, NormaliseValueToStokses(firstUnit, firstValue, secUnit, normDensity), normDensity, secUnit)); }
private static double NormaliseValueToStokses(visUnit fUnit, double fValue, visUnit sUnit, double density) { double result = 0.0; switch (fUnit) { case visUnit.St: result = fValue; break; case visUnit.sSt: result = fValue / 100; break; case visUnit.m2sec: result = fValue / 0.0001; break; case visUnit.mm2sec: result = fValue / 100; break; case visUnit.inch2sec: result = fValue / 0.0001 / 1550.0031; break; case visUnit.ft2sec: result = fValue / 0.0001 / 1550.0031 * 144; break; case visUnit.paSec: result = fValue * 10000; break; case visUnit.P: result = fValue * 1000; break; case visUnit.sP: result = fValue * 10; break; case visUnit.kg_mh: result = fValue * 27.8; break; case visUnit.funt_ft_s: result = fValue * 14900; break; case visUnit.rein: result = fValue * 6890 * 10000; break; } if ((byte)fUnit > 99 && (byte)sUnit < 99) { result /= density; } return(result); }