public static bool IsCanBePlaced(Prism p, Box b) { if (TriangleCircleR(p) <= RectangleCircleR_AB(b) && p.H <= b.C || TriangleCircleR(p) <= RectangleCircleR_AC(b) && p.H <= b.B || TriangleCircleR(p) <= RectangleCircleR_BC(b) && p.H <= b.A) { return(true); } else { return(false); } }
public double IsSimilar(ref Prism x, out double k) { if (a / x.a == b / x.b && b / x.b == c / x.c && c / x.c == h / x.h) { Console.WriteLine("Данные призмы пропорциоальны"); k = a / x.a; Console.Write("Коэффициент подобия = "); } else { Console.WriteLine("Данные призмы не пропорциональны"); k = 0; } return(k); }
static void Main(string[] args) { double k; //Коэффициент подобия призм Prism pr1 = new Prism(); Prism pr2 = new Prism(3, 3, 3, 3); Console.WriteLine(pr1.GetHashCode()); Console.WriteLine(pr2.IsSimilar(ref pr1, out k)); Prism.Info(); if (pr1.Equals(pr2)) { Console.WriteLine("Призмы идентичны!!!"); } else { Console.WriteLine("Не, соре, не идентичны)))"); } Prism pr3 = new Prism(3, 4, 5, 6); Console.WriteLine ("Площадь поверхности призмы = " + MathObject.SurfaceSquare(pr3)); Console.WriteLine ("Площадь основания = " + MathObject.SquareOfBase(pr3)); Console.WriteLine ("Объём призмы = " + MathObject.Amount(pr3) ); Box b = new Box(3, 4, 6); // Console.WriteLine(MathObject.TriangleCircleR(pr3) + " " + MathObject.RectangleCircleR_AB(b)); if (MathObject.IsCanBePlaced(pr3, b)) { Console.WriteLine("Может быть помещена"); } else { Console.WriteLine("Не может"); } var pr4 = new { a = 5, b = 5, c = 5, h = 6 }; Console.WriteLine(pr4.a + " " + pr4.b + " " + pr4.c + " " + pr4.h + " "); Prism check = new Prism(1, 2, 3, 4); }
// override object.Equals public override bool Equals(object obj) { Prism p = obj as Prism; if (obj == null || GetType() != obj.GetType()) { return(false); } else if (a == p.a && b == p.b && c == p.c && h == p.h && hash == p.hash) { return(true); } else { return(false); } }
public static double TriangleCircleR(Prism p) { return((p.A * p.B * p.C) / (4 * SquareOfBase(p))); }
private static double HeightOnC(Prism p) { return(2 * SquareOfBase(p) / p.C); }
public static double SquareOfBase(Prism p) { double hop = HalfOfPerim(p); return(Math.Sqrt(hop * (hop - p.A) * (hop - p.B) * (hop - p.C))); }
public static double SurfaceSquare(Prism p) { return(2 * SquareOfBase(p) + AVerge(p) + BVerge(p) + CVerge(p)); }
public static double CVerge(Prism p) { return(p.C * p.H); }
public static double BVerge(Prism p) { return(p.B * p.H); }
public static double AVerge(Prism p) { return(p.A * p.H); }
public static double Amount(Prism p) { return(SquareOfBase(p) * p.H); }
private static double HalfOfPerim(Prism p) { return((p.A + p.B + p.C) / 2); }