Ejemplo n.º 1
0
        //求得电场的垂直分量
        public static Plural GetVerticalE(EField e, SpectVector k, SpectVector l)  //k为射线传播方向,l为反射中的反射面的法向量或绕射中的与棱平行的向量
        {
            SpectVector n = SpectVector.VectorCrossMultiply(k, l);
            Plural      p = SpectVector.VectorDotMultiply(e, n);

            return(p);
        }
Ejemplo n.º 2
0
 public Node(Node t)
 {
     this.UAN                  = t.UAN;
     this.LayNum               = t.LayNum;
     this.TxNum                = t.TxNum;
     this.DiffractionNum       = t.DiffractionNum;
     this.RxNum                = t.RxNum;
     this.NodeName             = t.NodeName;
     this.Frequence            = t.Frequence;
     this.FrequenceWidth       = t.FrequenceWidth;
     this.DisranceToEdge       = t.DisranceToEdge;
     this.Position             = t.Position;
     this.IsEnd                = t.IsEnd;
     this.IsReceiver           = t.IsReceiver;
     this.NodeStyle            = t.NodeStyle;
     this.DistanceToFrontNode  = t.DistanceToFrontNode;
     this.RayTracingDistance   = t.RayTracingDistance;
     this.ReflectionFace       = t.ReflectionFace;
     this.RayIn                = t.RayIn;
     this.Height               = t.Height;
     this.Power                = t.Power;
     this.TotalE               = t.TotalE;
     this.DiffractionEdge      = t.DiffractionEdge;
     this.FatherNode           = t.FatherNode;
     this.ChildNodes           = t.ChildNodes;
     this.FrontDiffractionNode = t.FrontDiffractionNode;
 }
Ejemplo n.º 3
0
        //求得电场的水平分量
        public static Plural GetHorizonalE(EField e, SpectVector k, SpectVector l)
        {
            SpectVector n = SpectVector.VectorCrossMultiply(k, l);   //入射面的法向量
            SpectVector m = SpectVector.VectorCrossMultiply(k, n);
            Plural      p = SpectVector.VectorDotMultiply(e, m);

            return(p);
        }
Ejemplo n.º 4
0
        //复数向量与矢量的点乘运算
        //原函数:public static Plural VectorDotMultiply(Efield e, SpectVector l)
        public Plural DotMultiplied(EField eValue)
        {
            Plural p = new Plural();

            p.Re = eValue.X.Re * this.a + eValue.Y.Re * this.b + eValue.Z.Re * this.c;
            p.Im = eValue.X.Im * this.a + eValue.Y.Im * this.b + eValue.Z.Im * this.c;
            return(p);
        }
Ejemplo n.º 5
0
        /// <summary>
        ///复数向量与矢量的点乘运算
        /// </summary>
        public static Plural VectorDotMultiply(EField e, SpectVector l)
        {
            Plural p = new Plural();

            p.Re = e.X.Re * l.a + e.Y.Re * l.b + e.Z.Re * l.c;
            p.Im = e.X.Im * l.a + e.Y.Im * l.b + e.Z.Im * l.c;
            return(p);
        }
Ejemplo n.º 6
0
 public double totlePower;                            //存储态势点的总功率
 public AreaNode()
 {
     paths = new List <Path>();
     classifiedFrequencyPaths = new List <List <Path> >();
     totleEfields             = new List <EField>();
     totleEfield = new EField();
     totlePowers = new List <double>();
     totlePower  = new double();
 }
Ejemplo n.º 7
0
        public Object Clone()
        {
            EField newEfield = new EField();

            newEfield.X = (Plural)this.Xvertical.Clone();
            newEfield.Y = (Plural)this.Y.Clone();
            newEfield.Z = (Plural)this.Zvertical.Clone();
            return(newEfield);
        }
Ejemplo n.º 8
0
        /// <summary>
        ///复数与矢量的点乘运算
        /// </summary>
        public static EField VectorDotMultiply(Plural p, SpectVector l)
        {
            Plural X = new Plural(l.a * p.Re, l.a * p.Im);
            Plural Y = new Plural(l.b * p.Re, l.b * p.Im);
            Plural Z = new Plural(l.c * p.Re, l.c * p.Im);
            EField e = new EField(X, Y, Z);

            return(e);
        }
Ejemplo n.º 9
0
        //复数与矢量的点乘运算
        // 原函数public static Efield VectorDotMultiply(Plural p, SpectVector l)
        public EField DotMultiplied(Plural pValue)
        //this.DotMultiplied(p)
        {
            Plural X = new Plural(this.a * pValue.Re, this.a * pValue.Im);
            Plural Y = new Plural(this.b * pValue.Re, this.b * pValue.Im);
            Plural Z = new Plural(this.c * pValue.Re, this.c * pValue.Im);
            EField e = new EField(X, Y, Z);

            return(e);
        }