WPF 3D MeshGeometry3D类的Positions和TriangleIndices属性研究

MeshGeometry3D 类,用于生成三维形状的三角形基元;
类的参考在此;
https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.media.media3d.meshgeometry3d?view=windowsdesktop-7.0

写在xaml语法里面是 ,如果写到C#语言里面就要new一个此类的对象;

Positions属性就是来表示组成3D图形的所有三角形的顶点的;

TriangleIndices通过将Positions的顶点集合按一定顺序组合起来,组成所需要的三角形;

就是如果画一个三角形,需要3个顶点;如果画一个面,正方形面,并不是4个顶点;因为基元是三角形,只能由三角形构成其他形状;画一个正方形面,需要六个顶点,指定2个三角形来构成一个正方形面;

先看基本的三角形;按照这个示意的图来画一个基本三角形;顶点的顺序如下图的0、1、2;

WPF 3D MeshGeometry3D类的Positions和TriangleIndices属性研究_第1张图片

 

三角形的三个顶点是:(0,0,0),(1,0,0),(0,1,0);把摄像机放到呈现区域的中心,屏幕外面10个值的地方,往屏幕里边看,如下图;

WPF 3D MeshGeometry3D类的Positions和TriangleIndices属性研究_第2张图片

 

    这时只有Positions属性,TriangleIndices将按默认;

WPF 3D MeshGeometry3D类的Positions和TriangleIndices属性研究_第3张图片

 

    如果增加TriangleIndices="0,1,2",加和不加都是一样;如果调整TriangleIndices点的顺序,三角形将不可见;

此时点的顺序是如下图标记;

WPF 3D MeshGeometry3D类的Positions和TriangleIndices属性研究_第4张图片

 如果画一个正方形面,四个顶点是0,0,0  1,0,0   1,1,0    0,1,0;此时需要6个顶点,画2个三角形,来组成正方形面;但是2个三角形可以共享一条边,有2个顶点是重合的;

通过给出4个顶点的坐标,然后用TriangleIndices来指定2个三角形的顶点顺序,

     

TriangleIndices,0,1,2 指定一个三角形,2,3,0 指定另一个三角形,这样来绘出此正方形面;

WPF 3D MeshGeometry3D类的Positions和TriangleIndices属性研究_第5张图片

 


    
  
  
        
            
        
                                                  
            
                
                    
                
            
 
         
           
             
                
                   
                 
                 
                   
                 
              
            
        
        

 
  

你可能感兴趣的:(.Net,图形学和3D,wpf,3d)