public static List <Point3D> Approximating(double height, double width, double xAxisAngle, double yAxisAngle, double zAxisAngle, double scale) { List <Point3D> currentPoints = new List <Point3D>(8); double currentY = Ellipsoid.CountingY(width, 0); currentPoints.Add(new Point3D(width, -currentY, 0)); currentPoints.Add(new Point3D(-width, -currentY, 0)); currentPoints.Add(new Point3D(-width, currentY, 0)); currentPoints.Add(new Point3D(width, currentY, 0)); double currentA = Math.Sqrt(Math.Pow(Ellipsoid.A, 2) * (1 - Math.Pow(height / Ellipsoid.C, 2))); double x = 3.0 / 5 * currentA; double y = Ellipsoid.CountingY(x, height); currentPoints.Add(new Point3D(x, -y, height)); currentPoints.Add(new Point3D(-x, -y, height)); currentPoints.Add(new Point3D(-x, y, height)); currentPoints.Add(new Point3D(x, y, height)); return(Scaling(ZAxisRotating(YAxisRotating(XAxisRotating(currentPoints, xAxisAngle - Constans.LinearPi), yAxisAngle - Constans.LinearPi), zAxisAngle - Constans.LinearPi), scale)); }