//求得电场的水平分量 //调用方法: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); }
//求得电场的垂直分量 //调用方法: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); }
/// <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)); }