static public Polynome2D operator +(Polynome2D a, Polynome2D b) { Polynome2D result = new Polynome2D(); foreach (Term2D xyTerm in a.m_xyTerms) { result += xyTerm; } foreach (Term1D xTerm in a.m_xTerms) { result.AddXTerm(xTerm); } foreach (Term1D yTerm in a.m_yTerms) { result.AddYTerm(yTerm); } foreach (Term2D xyTerm in b.m_xyTerms) { result += xyTerm; } foreach (Term1D xTerm in b.m_xTerms) { result.AddXTerm(xTerm); } foreach (Term1D yTerm in b.m_yTerms) { result.AddYTerm(yTerm); } result.m_k = a.m_k + b.m_k; return(result); }
static public Polynome2D MultiplyXYPolygones(Polynome1D xPolygon, Polynome1D yPolygon) { Polynome2D result = new Polynome2D(); for (int x = 0; x < xPolygon.termCount; x++) { Term1D xTerm = xPolygon.terms[x]; for (int y = 0; y < yPolygon.termCount; y++) { Term1D yTerm = yPolygon.terms[y]; Term2D xyTerm = Term2D.MultiplyXYTerms(xTerm, yTerm); result += xyTerm; } result.AddXTerm(xTerm * yPolygon.constant); } for (int y = 0; y < yPolygon.termCount; y++) { Term1D yTerm = yPolygon.terms[y]; result.AddYTerm(yTerm * xPolygon.constant); } result.m_k = xPolygon.constant * yPolygon.constant; return(result); }
public MeshVolumeFormula(List <Term1D> xTerms, List <Term1D> yTerms, List <Term2D> xyTerms, float k, MeshID id, float relativeVolume) { m_formula = new Polynome2D(k); foreach (Term1D term in xTerms) { m_formula.AddXTerm(term); } foreach (Term1D term in yTerms) { m_formula.AddYTerm(term); } foreach (Term2D term in xyTerms) { m_formula.AddXYTerm(term); } m_id = id; m_relativeVolume = relativeVolume; }
public MeshVolumeFormula(Polynome2D formula, MeshID id, float relativeVolume) { m_formula = new Polynome2D(formula.k); foreach (Term1D term in formula.xTerms) { m_formula.AddXTerm(term); } foreach (Term1D term in formula.yTerms) { m_formula.AddYTerm(term); } foreach (Term2D term in formula.xyTerms) { m_formula.AddXYTerm(term); } m_id = id; m_relativeVolume = relativeVolume; }