zoukankan      html  css  js  c++  java
  • wpf 3d显示

       百度或者谷歌一下,3d,看吧,介绍ModelVisual3D,介绍GeometryModel3D,介绍Model3DGroup,都简单的介绍了一 下,但是,这些东西如果我想知道,我直接去msdn不就行了,齐而且全,我还去百度谷歌什么,我只是想知道如何和在viewport3d中显示一个图片而 已,可怜的中文资料!
           好了,如果是高手,就甭看了,这只是一个简单介绍如果用3d的小例子,如果是跟我一样想学3d,但是不知道如何入门的 菜鸟,我只能说,咱们都是同志
          Xaml设计中:
            <Viewport3D x:Name="_view">

        </Viewport3D>
        添加这样一个viewport3D控件,命名。
        代码中:
    全局变量:
    定义一个cameral,也就是所谓的摄像机,这个东西就是相当于眼睛,你的眼睛不可能看到360度,如果你想看后面的东西需要的就是转过头。你可以看远近,也可以看上下左右,明白?不明白我也说不清楚了。
    PerspectiveCamera _camera=null;
    在windows_load里面把设置:
              _camera = new PerspectiveCamera();
                _camera.Position = new Point3D(0, 0, 5);
                _camera.LookDirection = new Vector3D(0, 0, -5);
                _camera.UpDirection = new Vector3D(0, 1, 0);
                _camera.FieldOfView = 45;
                _view.Camera = _camera;
               _view.Children.Add(getg3(@"c:\image",1));
    只解释后两句,是设置_view的摄像机绑定,上面的不懂msdn去!最后一句自己写的一个函数:
    private ModelVisual3D getg3(string filepath, int index)
            {

            }
    函数返回值是一个 ModelVisual3D 。
    private ModelVisual3D getg3(string filepath, int index)
            {
               //定义一个ModelVisual3D对象,作为返回值。
               ModelVisual3D _visual = new ModelVisual3D();
                //下面连个是临时变量,读取图片用的
                BitmapImage bmp;
                ImageSource img ;

                //DiffuseMaterial 这个东西是为了返回一个brush,brush也就是为了返回一个图片,暂且这么理解!我解释不大清楚!其实是为了填充 Material这个东西!
                DiffuseMaterial dm = new DiffuseMaterial();
                GeometryModel3D geometrymodel3d = new GeometryModel3D();
                Model3DGroup model3dgroupmodel= new Model3DGroup();
                MeshGeometry3D MeshGeometry3D1 = new MeshGeometry3D();
             
                 model3dgroupmodel.Children.Add(geometrymodel3d);
                Transform3DGroup tg = new Transform3DGroup();
                tg.Children.Add(new TranslateTransform3D(0, 0, 0));
                tg.Children.Add(new ScaleTransform3D(0.25, 0.25, 0.2));
                tg.Children.Add(new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(0, 1, 0), -45)));
                model3dgroupmodel.Transform = tg;

                    bmp = new BitmapImage(new Uri(@“c:\image\1.jpg”));

                    img = bmp;
                 
                    dm.Brush = new ImageBrush((ImageSource)(img));
                    geometrymodel3d.Material = dm;
                    model3dgroupmodel.Children.Add(geometrymodel3d);
           
                MeshGeometry3D1 = new MeshGeometry3D();
                MeshGeometry3D1.Positions = ((Point3DCollection)new Point3DCollectionConverter().ConvertFromString("-1,1,1 -1,-1,1 1,-1,1 1,1,1"));
                MeshGeometry3D1.TriangleIndices = ((Int32Collection)new Int32CollectionConverter().ConvertFromString("0,1,2 0,2,3"));
                MeshGeometry3D1.TextureCoordinates = ((PointCollection)new PointCollectionConverter().ConvertFromString("0,0 0,1 1,1 1,0"));
                geometrymodel3d.Geometry = MeshGeometry3D1;

                AmbientLight AmbientLight1 = new AmbientLight();
                AmbientLight1.Color = Colors.Gray;
                model3dgroupmodel.Children.Add(AmbientLight1);
                _visual.Content = model3dgroupmodel;

                return _visual;
            }

  • 相关阅读:
    盒子垂直水平居中
    Sahi (2) —— https/SSL配置(102 Tutorial)
    Sahi (1) —— 快速入门(101 Tutorial)
    组织分析(1)——介绍
    Java Servlet (1) —— Filter过滤请求与响应
    CAS (8) —— Mac下配置CAS到JBoss EAP 6.4(6.x)的Standalone模式(服务端)
    JBoss Wildfly (1) —— 7.2.0.Final编译
    CAS (7) —— Mac下配置CAS 4.x的JPATicketRegistry(服务端)
    CAS (6) —— Nginx代理模式下浏览器访问CAS服务器网络顺序图详解
    CAS (5) —— Nginx代理模式下浏览器访问CAS服务器配置详解
  • 原文地址:https://www.cnblogs.com/fish124423/p/2507371.html
Copyright © 2011-2022 走看看