예제 #1
0
        //求得电场的水平分量
        //调用方法:thisEfield.GetVerticalE(k,l)
        public Plural GetHorizonalE(SpectVector k, SpectVector l)
        {
            SpectVector n = k.CrossMultiplied(l);   //入射面的法向量
            SpectVector m = k.CrossMultiplied(n).GetNormalizationVector();
            Plural      p = m.DotMultiplied(this);

            return(p);
        }
예제 #2
0
        //求得电场的垂直分量
        //调用方法:thisEfield.GetVerticalE(k,l)
        public Plural GetVerticalE(SpectVector k, SpectVector l)  //k为射线传播方向,l为反射中的反射面的法向量或绕射中的与棱平行的向量
        {
            SpectVector n = k.CrossMultiplied(l).GetNormalizationVector();
            Plural      p = n.DotMultiplied(this);

            return(p);
        }
예제 #3
0
        /// <summary>
        ///获得平面的法向量
        /// </summary>
        public SpectVector GetNormalVector()
        {
            SpectVector vector12 = new SpectVector(this.vertices[0], this.vertices[1]);
            SpectVector vector13 = new SpectVector(this.vertices[0], this.vertices[2]);

            return(vector12.CrossMultiplied(vector13));
        }