//求得电场的垂直分量 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); }
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; }
//求得电场的水平分量 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); }
//复数向量与矢量的点乘运算 //原函数: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); }
/// <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); }
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(); }
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); }
/// <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); }
//复数与矢量的点乘运算 // 原函数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); }