コード例 #1
0
        //反射系数
        public double reflectCoefficient(double angle)
        {
            angle = GeometricUtilities.GetDegrees(angle);
            Reflection_vh rf         = new Reflection_vh();              //水平方向系数
            ArrayList     reflectCoe = rf.GetReflection(5, 0.01, angle); //第一个是垂直系数 第二个是水平系数

            double return_reflectCoe = Math.Pow(Math.Cos(angle) * (double)reflectCoe[1], 2) + Math.Pow(Math.Sin(angle) * (double)reflectCoe[0], 2);

            return(return_reflectCoe > 1 ? 1 : return_reflectCoe);
            //return 0.5;
        }
コード例 #2
0
        //绕射系数
        public double diffractCoefficient(double angle)
        {
            angle = GeometricUtilities.GetDegrees(angle);
            Reflection_vh rv = new Reflection_vh();
            //double return_Coe = 0;
            //double Coe22 = rv.Getangel22(angle);
            //double Coe248 = rv.Getangel248(angle);
            //double return_Coe = (Math.Abs(angle - 22) * Coe248 + Math.Abs(angle - 248) * Coe22) / (Math.Abs(angle - 22) + Math.Abs(angle - 248));
            //double Uv = Math.Pow(10, return_Coe / 10);

            double Coe75      = rv.Getangel75(angle);
            double Coe135     = rv.Getangel135(angle);
            double return_Coe = (Math.Abs(angle - 135) * Coe75 + Math.Abs(angle - 75) * Coe135) / (Math.Abs(angle - 135) + Math.Abs(angle - 75));
            double Uv         = Math.Pow(return_Coe, 2);

            return(Uv > 1 ? 1 : Uv);
        }