示例#1
0
        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;
        }
示例#2
0
        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();
        }
示例#3
0
        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);
        }
示例#4
0
        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));
        }
示例#5
0
        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);
        }