private void CreateUmbrellaFigure() { // ЗОНТИК // шляпка var triangle1 = new Triangle3D( new Vector3D(-200, 0, 1000), new Vector3D(0, 200, 1000), new Vector3D(0, 0, 1200), Color.Blue); var triangle2 = new Triangle3D( new Vector3D(0, 200, 1000), new Vector3D(200, 0, 1000), new Vector3D(0, 0, 1200), Color.Red); var triangle3 = new Triangle3D( new Vector3D(200, 0, 1000), new Vector3D(0, -200, 1000), new Vector3D(0, 0, 1200), Color.Magenta); var triangle4 = new Triangle3D( new Vector3D(0, -200, 1000), new Vector3D(-200, 0, 1000), new Vector3D(0, 0, 1200), Color.Lime); // ножка Func <Vector3D, Vector3D, Vector3D, double> spinDeepPoint = (v1, v2, v3) => { return(Math.Sqrt(v3.X * v3.X + v3.Y * v3.Y + v3.Z * v3.Z)); }; var triangle5 = new Triangle3D( new Vector3D(-20, 20, 800), new Vector3D(20, 20, 800), new Vector3D(0, 0, 1200), Color.Chocolate, spinDeepPoint); var triangle6 = new Triangle3D( new Vector3D(-20, -20, 800), new Vector3D(-20, 20, 800), new Vector3D(0, 0, 1200), Color.Chocolate, spinDeepPoint); var triangle7 = new Triangle3D( new Vector3D(20, -20, 800), new Vector3D(-20, -20, 800), new Vector3D(0, 0, 1200), Color.Chocolate, spinDeepPoint); var triangle8 = new Triangle3D( new Vector3D(20, 20, 800), new Vector3D(20, -20, 800), new Vector3D(0, 0, 1200), Color.Chocolate, spinDeepPoint); var triangle9 = new Triangle3D( new Vector3D(-20, -20, 800), new Vector3D(20, 20, 800), new Vector3D(-20, 20, 800), Color.Chocolate); var triangle10 = new Triangle3D( new Vector3D(20, 20, 800), new Vector3D(-20, -20, 800), new Vector3D(20, -20, 800), Color.Chocolate); _scene3D.Append(triangle1); _scene3D.Append(triangle2); _scene3D.Append(triangle3); _scene3D.Append(triangle4); _scene3D.Append(triangle5); _scene3D.Append(triangle6); _scene3D.Append(triangle7); _scene3D.Append(triangle8); _scene3D.Append(triangle9); _scene3D.Append(triangle10); var averagePosition = Vector3D.Average( triangle1.OrientationVector, triangle2.OrientationVector, triangle3.OrientationVector, triangle4.OrientationVector, triangle5.OrientationVector, triangle6.OrientationVector, triangle7.OrientationVector, triangle8.OrientationVector, triangle9.OrientationVector, triangle10.OrientationVector); _scene3D.SetObjectPosition(averagePosition); }