コード例 #1
0
        public static void AddZAxis(Model3DGroup group,
                                    double length = 4, double thickness = 0.1)
        {
            MeshGeometry3D mesh   = new MeshGeometry3D();
            Point3D        origin = D3.Origin -
                                    D3.XVector(thickness / 2) -
                                    D3.YVector(thickness / 2) -
                                    D3.ZVector(thickness / 2);

            mesh.AddBox(origin,
                        D3.XVector(thickness), D3.YVector(thickness), D3.ZVector(length));
            group.Children.Add(mesh.MakeModel(Brushes.Blue));
        }
コード例 #2
0
        // Make a cube at the origin.
        public static void AddOrigin(Model3DGroup group,
                                     double cubeThickness = 0.102)
        {
            MeshGeometry3D mesh   = new MeshGeometry3D();
            Point3D        origin = D3.Origin -
                                    D3.XVector(cubeThickness / 2) -
                                    D3.YVector(cubeThickness / 2) -
                                    D3.ZVector(cubeThickness / 2);

            mesh.AddBox(origin,
                        D3.XVector(cubeThickness),
                        D3.YVector(cubeThickness),
                        D3.ZVector(cubeThickness));
            group.Children.Add(mesh.MakeModel(Brushes.Black));
        }
コード例 #3
0
        // Define the model.
        private void DefineModel(Model3DGroup group)
        {
            //// Verify the tetrahedron calculations.
            //MeshExtensions.VerifyTetrahedron();

            // Show the axes.
            MeshExtensions.AddAxes(group);

            const double scale = 5;

            // Make a solid insphere.
            MeshGeometry3D mesh1 = new MeshGeometry3D();

            mesh1.AddSphere(D3.Origin, G3.TetrahedronInradius(), 60, 30, true);
            mesh1.ApplyTransformation(new ScaleTransform3D(scale, scale, scale));
            group.Children.Add(mesh1.MakeModel(Brushes.Red));

            // Make a translucent tetrahedron.
            MeshGeometry3D mesh2 = new MeshGeometry3D();

            mesh2.AddTetrahedron();
            mesh2.ApplyTransformation(new ScaleTransform3D(scale, scale, scale));
            Brush         brush  = new SolidColorBrush(Color.FromArgb(128, 128, 255, 128));
            MaterialGroup group2 = D3.MakeMaterialGroup(
                new DiffuseMaterial(brush),
                new SpecularMaterial(Brushes.White, 100));

            group.Children.Add(mesh2.MakeModel(group2));

            // Make a translucent circumsphere.
            MeshGeometry3D mesh3 = new MeshGeometry3D();

            mesh3.AddSphere(D3.Origin, G3.TetrahedronCircumradius(), 60, 30, true);
            mesh3.ApplyTransformation(new ScaleTransform3D(scale, scale, scale));
            MaterialGroup group3 = D3.MakeMaterialGroup(
                new DiffuseMaterial(brush),
                new SpecularMaterial(Brushes.White, 100));

            group.Children.Add(mesh3.MakeModel(group3));
        }
コード例 #4
0
        // Define the model.
        private void DefineModel(Model3DGroup group)
        {
            // Show the axes.
            MeshExtensions.AddAxes(group);

            // Make a translucent sphere.
            MeshGeometry3D mesh2 = new MeshGeometry3D();

            mesh2.AddSphere(new Point3D(-2, 0, 0), 1, 60, 30, true);
            Brush         brush  = new SolidColorBrush(Color.FromArgb(128, 128, 255, 128));
            MaterialGroup group2 = D3.MakeMaterialGroup(
                new DiffuseMaterial(brush),
                new SpecularMaterial(Brushes.White, 100));

            group.Children.Add(mesh2.MakeModel(group2));

            // Make a translucent circumsphere.
            MeshGeometry3D mesh3 = new MeshGeometry3D();

            mesh3.AddSphere(new Point3D(2, 0, 0), 1, 60, 30, true);
            group.Children.Add(mesh3.MakeModel(group2));
        }