zoukankan      html  css  js  c++  java
  • WPF3D模型

    <Viewport3D x:Name="MyViewport3D">
    <Viewport3D.Camera>
    <!-- 照相机--> <PerspectiveCamera Position="0,0,8" x:Name="MyCamera"></PerspectiveCamera>
    </Viewport3D.Camera>

    <!--照相机有了我们开始绘制立方体模型了,6个面-->
    <Viewport3D.Children>
    <ModelVisual3D>
    <ModelVisual3D.Content>
    <Model3DGroup>
    <!--第一个面-->
    <!--Positions="0,0,0 2,0,0 2,2,0 0,2,0" 定义了四个点。
    有了这四个点,就应该开始绘制三角形基元,就是要把点串起来。
    TriangleIndices="0,1,2 0,2,3",意思是将0、1、2这三个顶点连
    起来组成一个三角形,将0、2、3这三个顶点连起来组成另一个三角。
    这里有一个技巧,我姑且这样理解,在建立三角形时,如果是逆时针连接顶点,
    那么建立的三角形就是面向视野的,如果是顺时针连接,就是背向视野的(向外)
    ,大家可以试一下TriangleIndices="0,3,2 0,2,1"。这样就绘制出如下图所示的一个面了。-->
    <GeometryModel3D x:Name="F1">
    <GeometryModel3D.Material>
    <DiffuseMaterial Brush="Green"></DiffuseMaterial>
    </GeometryModel3D.Material>

    <GeometryModel3D.Geometry>
    <MeshGeometry3D Positions="0,0,0 2,0,0 2,2,0 0,2,0" TriangleIndices="0,1,2 0,2,3"></MeshGeometry3D>
    </GeometryModel3D.Geometry>
    </GeometryModel3D>

    <!--第二个面-->
    <GeometryModel3D x:Name="F2">
    <GeometryModel3D.Material>
    <DiffuseMaterial Brush="Blue"></DiffuseMaterial>
    </GeometryModel3D.Material>
    <GeometryModel3D.Geometry>
    <MeshGeometry3D Positions="0,0,0 0,0,2 0,2,2 0,2,0" TriangleIndices="0,1,2 0,2,3"></MeshGeometry3D>
    </GeometryModel3D.Geometry>
    </GeometryModel3D>

    <!--第三个面-->
    <GeometryModel3D x:Name="F3">
    <GeometryModel3D.Material>
    <DiffuseMaterial Brush="Gray"></DiffuseMaterial>
    </GeometryModel3D.Material>
    <GeometryModel3D.Geometry>
    <MeshGeometry3D Positions="0,0,0 0,0,2 2,0,2 2,0,0" TriangleIndices="0,2,1 0,3,2"></MeshGeometry3D>
    </GeometryModel3D.Geometry>
    </GeometryModel3D>

    <!--第四个面-->
    <GeometryModel3D>
    <GeometryModel3D.Material>
    <DiffuseMaterial Brush="Bisque"></DiffuseMaterial>
    </GeometryModel3D.Material>
    <GeometryModel3D.Geometry>
    <MeshGeometry3D Positions="2,0,0 2,2,0 2,2,2 2,0,2" TriangleIndices="0,1,2 0,2,3"></MeshGeometry3D>
    </GeometryModel3D.Geometry>
    </GeometryModel3D>

    <!--第五个面-->
    <GeometryModel3D>
    <GeometryModel3D.Material>
    <DiffuseMaterial Brush="Yellow"></DiffuseMaterial>
    </GeometryModel3D.Material>
    <GeometryModel3D.Geometry>
    <MeshGeometry3D Positions="0,2,2 2,2,2 2,2,0 0,2,0" TriangleIndices="0,1,2 0,2,3"></MeshGeometry3D>
    </GeometryModel3D.Geometry>
    </GeometryModel3D>

    <!--第六个面-->
    <GeometryModel3D>
    <GeometryModel3D.Material>
    <DiffuseMaterial Brush="Red"></DiffuseMaterial>
    </GeometryModel3D.Material>
    <GeometryModel3D.Geometry>
    <MeshGeometry3D Positions="0,2,2 2,2,2 0,0,2 2,0,2" TriangleIndices="0,2,3 0,3,1"></MeshGeometry3D>
    </GeometryModel3D.Geometry>
    </GeometryModel3D>
    </Model3DGroup>
    </ModelVisual3D.Content>
    </ModelVisual3D>
    <!--添加光源,如果没有光源则是黑色(也就是黑天)-->
    <ModelVisual3D x:Name="light">
    <ModelVisual3D.Content>
    <AmbientLight></AmbientLight>
    </ModelVisual3D.Content>
    </ModelVisual3D>
    </Viewport3D.Children>
    </Viewport3D>
    <Viewport3D Margin="10,163,300,10">
    <Viewport3D.Camera>
    <PerspectiveCamera Position="0,0,8" x:Name="camera"></PerspectiveCamera>
    </Viewport3D.Camera>
    <Viewport3D.Children>
    <ModelVisual3D>
    <ModelVisual3D.Content>
    <!--<span style="color:#ff0000;">-->
    <GeometryModel3D x:Name="F9">
    <GeometryModel3D.Material>
    <DiffuseMaterial Brush="Green"/>
    </GeometryModel3D.Material>
    <GeometryModel3D.Geometry>
    <MeshGeometry3D Positions="0,0,0 2,0,0 2,2,0 0,2,0 0,2,2 0,0,2 2,0,2 2,2,2"
    TriangleIndices="0,2,1 0,3,2 0,4,3 0,5,4 0,1,6 0,6,5 3,4,7 3,7,2 4,5,6 4,6,7 7,6,1 7,1,2">
    </MeshGeometry3D>
    </GeometryModel3D.Geometry>
    </GeometryModel3D>
    <!--</span>-->
    </ModelVisual3D.Content>
    </ModelVisual3D>
    <ModelVisual3D x:Name="light2">
    <ModelVisual3D.Content>
    <AmbientLight></AmbientLight>
    </ModelVisual3D.Content>
    </ModelVisual3D>
    </Viewport3D.Children>
    </Viewport3D>

  • 相关阅读:
    SQLSERVER 的表分区(水平) 操作记录2
    GraphQl in ASP.NET Core
    初始认知学习 .net core 逐步加深
    C# 关于使用JavaScriptSerializer 序列化与返序列化的操作
    Nginx、IIS 相关命令
    SqlServer:查询指定表所有外键关联表信息
    centos 重启宝塔命令
    c# 根据日志中的方法信息,反射再次执行相关方法
    jackson 下载地址记录
    【设计模式】六大原则
  • 原文地址:https://www.cnblogs.com/zhihai/p/2437786.html
Copyright © 2011-2022 走看看