2012-06-08 21 views
6

tengo este código que dibuja un cubo en WPF Viewport3D:Creación de un cubo 3D de malla de alambre

 <Viewport3D Name="viewport3D1"> 
      <Viewport3D.Camera> 
       <PerspectiveCamera x:Name="camMain" Position="6 5 4" LookDirection="-6 -5 -4"> 
       </PerspectiveCamera> 
      </Viewport3D.Camera> 
      <ModelVisual3D> 
       <ModelVisual3D.Content> 
        <DirectionalLight x:Name="dirLightMain" Direction="-1,-1,-1"> 
        </DirectionalLight> 
       </ModelVisual3D.Content> 
      </ModelVisual3D> 
      <ModelVisual3D> 
       <ModelVisual3D.Content> 
        <GeometryModel3D> 
         <GeometryModel3D.Geometry> 
          <MeshGeometry3D x:Name="meshMain" 
           Positions="0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1" 
           TriangleIndices="2 3 1 2 1 0 7 1 3 7 5 1 6 5 7 6 4 5 6 2 0 2 0 4 2 7 3 2 6 7 0 1 5 0 5 4"> 
          </MeshGeometry3D> 
         </GeometryModel3D.Geometry> 
         <GeometryModel3D.Material> 
          <DiffuseMaterial x:Name="matDiffuseMain"> 
           <DiffuseMaterial.Brush> 
            <SolidColorBrush Color="Red"/> 
           </DiffuseMaterial.Brush> 
          </DiffuseMaterial> 
         </GeometryModel3D.Material> 
        </GeometryModel3D> 
       </ModelVisual3D.Content> 
      </ModelVisual3D> 
     </Viewport3D> 

Esto da el siguiente resultado:

Cómo hacer que rinda como marco de alambre?

Respuesta

8

Tener un vistazo a la clase LinesVisual3D en el (libre) de la hélice 3D Toolkit (https://github.com/helix-toolkit). Esta es una versión de las 'líneas de espacio de pantalla' que le permite dibujar wireframes como su ejemplo.

Recomiendo encarecidamente el Helix 3D Toolkit si está trabajando en WPF en 3D.

0

Tal vez esto puede ayudar:

   <GeometryModel3D.Material> 
        <DiffuseMaterial x:Name="matDiffuseMain"> 
         <DiffuseMaterial.Brush> 
          <SolidColorBrush Color="Red" Opacity="0.5" /> 
         </DiffuseMaterial.Brush> 
        </DiffuseMaterial> 
       </GeometryModel3D.Material> 
       <GeometryModel3D.BackMaterial> 
        <DiffuseMaterial x:Name="matDiffuseMain2"> 
         <DiffuseMaterial.Brush> 
          <SolidColorBrush Color="Red" Opacity="0.5" /> 
         </DiffuseMaterial.Brush> 
        </DiffuseMaterial> 
       </GeometryModel3D.BackMaterial> 
+0

Gracias, pero no es realmente lo que estoy buscando. ¿Hay alguna manera de obtener el mismo efecto que en la imagen? –

+0

Creo que solo si construyes las líneas como tubos estrechos o cajas conectadas. debes tener en cuenta que en el mundo 3D una 2da línea no tiene apariencia. a menos que sea posible dibujar una línea simple en 3DViewport, ¿es posible? mira esto también: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/b0c79d04-37af-489f-8601-ee9c76dd12cf/ –

Cuestiones relacionadas